Calculate the distance between objects area using matlab.
이전 댓글 표시
I want to know the distance H (highest vertical) and L (longest horizontal) as shown in the picture A1.jpg in the white part. How to write a program using matlab?

A1.jpg
채택된 답변
추가 답변 (1개)
Image Analyst
2020년 1월 5일
How is this different than the question you asked here: https://www.mathworks.com/matlabcentral/answers/498831-calculate-the-distance-l-distance-h-and-circumference-boundary#answer_408690 ?
I gave you a compact solution there:
props = regionprops(binaryImage, 'BoundingBox', 'Perimeter');
width = props.BoundingBox(3); % Horizontal distance.
height = props.BoundingBox(4); % Vertical distance.
If you wanted to use find(), you can do it like this, rather than with a for loop
[rows, columns] = find(binaryImage);
width = max(columns) - min(columns);
height = max(rows) - min(rows);
Also you need to decide if width is counting pixels, or going from center to center of pixels. So, does this array [0, 1, 1, 1 , 0] have a width of 3 or 2? To answer, you might need to know the physics/optics of how your image was generated.
댓글 수: 2
sombat supha
2020년 1월 5일
Image Analyst
2020년 1월 5일
In your other question you wanted to know the width and height (same as here) and perimeter. If you want to know the size (area) of the white region, you'll have to ask regionprops() for 'Area'.
카테고리
도움말 센터 및 File Exchange에서 Images에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!