Calculate length of white pixels in binary image

1 view (last 30 days)
bbbb.PNG
I want to calculate the length in pixels of the white pixels at the bottom of the image assuming it is a line without breaks without manually using imdist tool.
Thanks in advance.
  1 Comment
Michael Madelaire
Michael Madelaire on 31 Jul 2019
You should include a data file, such that people willing to help can have a look.
Additionally tou should state some constratints. Is a line only defined if the as being the same row? or can it be diagonally displaced? If so, then how much?

Sign in to comment.

Answers (2)

Eva-Maria Weiss
Eva-Maria Weiss on 31 Jul 2019
Hi!
Assuming that approximating the lineshape structure in the bottom area of your oicture as a line you could try the following
  1. Extract the bottom part of your pictur
subFrame = yourPic(rowmiddl:end,:)
2. Now you can find the indices of white pixels by
idx = find(subFrame) %looks for non-zero elements, returns a list
3. Convert linea indexing to subscripts by
[r,c] = ind2sub(size(subFrame),idx)
4. The next step could simply mathematically solved by pythagoras?
qNumbPix = (r(end)-r(1))^2 + (c(end)-c(1))^2
NumbPix = sqrt(qNumbPix
I hope this will help!
Good Luck!

KALYAN ACHARJYA
KALYAN ACHARJYA on 31 Jul 2019
Edited: KALYAN ACHARJYA on 31 Jul 2019
Lets, image_bw is the binary image.(Please not your enclosed image have white boundary, I ignored that)
se=strel('disk',4);
result=imdilate(image_bw,se);
result=bwareafilt(result,1,'Largest');
result=imerode(result,se);
figure,imshow(result);
Next: Find the maximum distance between two white pixels, number of similar question already answered by @ImageAnalyst and @Walter, please do search see here too.
I hope you can do that, please try if not, let me know.

Products


Release

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!