How can specific positions in the below image?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Amir Torabi
le 12 Déc 2019
Commenté : Image Analyst
le 15 Déc 2019
Hello Friends.
I am looking for to find the positions(i,j) of light green boundaries in the below images.
A needed m.file for loading the required data is attached. In the below code, etas and eta are matrix with predefined size.
%code
load Etas
Nx=128;
eta2=zeros(Nx,Nx);
ncount=0;
%original code
for igrain=1:25
ncount=0;
for i=1:Nx
for j=1:Nx
ii =(i-1)*Nx+j;
eta2(i,j) =eta2(i,j)+etas(ii,igrain)^2;
if(etas(ii,igrain) >= 0.5)
ncount=ncount+1;
end
%
ncount=ncount/(Nx*Nx);
end
end
end
%Display
figure
imagesc(eta2)
0 commentaires
Réponse acceptée
Image Analyst
le 13 Déc 2019
Threshold eta2 then skeletonize to get single pixel wide lines. Then call find to get the rows and columns of every white pixel.
binaryImage = bwmorph(eta2 < 0.6, 'skel', inf);
[rows, columns] = find(binaryImage);
2 commentaires
Image Analyst
le 15 Déc 2019
I don't know what that means. What do you mean by the "above points"? Do you mean the points (row, column pairs) that I used find() to get in my above Answer? They are binary so they don't have values other than 1. Do you mean the gray scale values from the original image that lie in the same location as the skeleton? If so, you can just multiply the gray scale image by the skeleton image, like
graySkel = grayImage .* uint8(binaryImage);
or use indexing like
graySkel = grayImage; % Initialize
graySkel(~binaryImage) = 0; % Set non-skeleton points to black (0).
Plus de réponses (0)
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!