How do I count the number of pixels from top white to bottom white pixel?

5 views (last 30 days)
Hello
I attach the image I want to work with.
I define with red vertical lines the width or the space of the area I want to measure the total number of pixels for every column (e.g. cumsum command). The columns will contain the total number of pixels of only the distance between the top white pixel of the curve and the last bottom white pixel. No beyond the two margins. Only this distance. From top white pixel to bottom white pixel, all pixels included in this black area, and only for the space between those two red vertical lines that denote the first and last white pixels of the white little curve line bottom structure.
I am sure it is not hard. Just a bit fuzzy and complicated but other than that I know it can be done.
Thanks for the time spending reading my query.

Accepted Answer

Image Analyst
Image Analyst on 15 Sep 2019
Try this:
[rows, columns] = size(binaryImage);
heights = zeros(1, columns);
for col = 1 : columns
thisColumn = binaryImage(:, col);
topRow = find(thisColumn, 1, 'first');
if ~isempty(topRow)
bottomRow = find(thisColumn, 1, 'last');
heights(col) = bottomRow - topRow; % Add 1 if you want.
end
end
  5 Comments
Stelios Fanourakis
Stelios Fanourakis on 20 Sep 2019
Edited: Stelios Fanourakis on 20 Sep 2019
Yes now it works correct. I believe this line made the huge difference. Thanks once again Image Analyst for your precise and valuable contribution to my work.
mask(1:30, :) = false;

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by