Here is an example image of 2 objects. I want to fill the gap between those two to get a single blob. I tried with different morphological closing but could not get a smooth result as drawn in red.
Any help would be much appreciated.
Original Image:
Desired mask:

 채택된 답변

Walter Roberson
Walter Roberson 2018년 3월 29일

0 개 추천

If you find() on the image to get the row and column coordinates, then you can use boundary() to get a list of indices into the row and columns that together, taken in order, give an outline that includes all of the points.

댓글 수: 2

Kamu
Kamu 2018년 3월 29일
Thanks Walter for your reply. Could you explain it a bit further? I know those functions but did not understand your approach.
[y, x] = find(YourImage);
K = boundary(x, y);
boundary_x = x(K);
boundary_y = y(K);
mask = poly2mask( boundary_x, boundary_y, size(YourImage,1), size(YourImage,2) );
mask is now an ROI that is 1 for everywhere inside the combined object. Or you can
plot(boundary_x, boundary_y, 'r', 'linewidth', 4)
if what you care about is just drawing the outline rather than figuring out which points are inside of it.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

질문:

2018년 3월 29일

댓글:

2018년 3월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by