How can specific positions in the below image?
조회 수: 1 (최근 30일)
이전 댓글 표시
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
채택된 답변
Image Analyst
2019년 12월 13일
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
Image Analyst
2019년 12월 15일
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).
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!