how can i get each coordinates of binary image
2 views (last 30 days)
Show older comments
how can i get the each coordinates that shown in this image http://www.freeimagehosting.net/pd85c (up, down, right, left and center)
0 Comments
Accepted Answer
Image Analyst
on 23 Nov 2012
Edited: Image Analyst
on 25 Nov 2012
Find the centroid with regionprops(). See my Image Segmentation Tutorial if you don't know how. Then convert the centroid to integer to get the row and column.
centroidColumn = int32(centroid(1)); % "X" value
centroidRow = int32(centroid(2)); "Y" value.
Then extract a row or column and use find to find the first and last element that's set:
middleColumn = binaryImage(:, centroidColumn);
topRowY = find(middleColumn, 1, 'first'); % Find top.
bottomRowY = find(middleColumn, 1, 'last'); % Find bottom.
middleRow = binaryImage(centroidRow, :);
leftColumnX = find(middleRow, 1, 'first'); % Find left.
rightColumnX= find(middleRow, 1, 'last'); % Find right.
5 Comments
Image Analyst
on 25 Nov 2012
middleRow should be defined like this:
middleRow = binaryImage(centroidRow, :);
and line() takes 2 x and 2 y coords:
line([x1, x2], [y1 y2]........ Or line([col1, col2], [row1, row2], ......
and I'd recommend using more descriptive names than single letters, for maintainability of the code.
Glad it's finally working for you.
More Answers (0)
See Also
Categories
Find more on Point Cloud Processing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!