"Fill" Binary Image
조회 수: 4 (최근 30일)
이전 댓글 표시
Hi,
Is there a way to "fill" a binary image such that textured regions become black? As an example, I would like to make this first image:
Look like this second image:
Note how the wall towards the left of the image appears mainly white in the first image. Is there a way to darken it so that it becomes more like that shown in the second image?
I have tried using morphological operators such as:
filled = bwmorph(img, 'fill', 100);
But this doesn't seem to have any affect. I am desperate to hear your thoughts.
Thanks for your help!
댓글 수: 0
채택된 답변
Walter Roberson
2011년 6월 2일
I believe you would want to either erode the white or dilate the black, (possibly followed by the reverse operation), so as to remove small features.
Or alternately, you could bwlabel() and regionprops() and remove the regions of sufficiently small area. That might not get all of the texture lines though.
댓글 수: 0
추가 답변 (2개)
Image Analyst
2011년 6월 3일
You can try imopen if you want to maintain the size - this does an erosion (local min) followed by a dilation (local max). To enlarge the black area, just use imerode. To get rid of small things, use bwareaopen, which does labeling and regionprops internally like Walter said. But your images were not created by any morphological operation of the first one to produce the second one. I'm virtually certain that they were produced by thresholding with different threshold values, because there's no other way to produce the texture in the sky region of the second image - it simply isn't in the first image and there's no way to get that out of a uniform white area. I'd bet my next paycheck on it.
댓글 수: 0
Philip
2011년 6월 2일
댓글 수: 16
Image Analyst
2011년 6월 4일
Have you considered using Hough or houghlines for finding lines? Like I said before your images were binarized from a gray scale image. I don't think they are the result of different exposures unless your gain is so incredibly high that the different exposures cause binarization in the first place. Why don't you post the original gray scale or color images and say what you are really trying to find instead of saying things like I want to find the longest line. If you want to find a horizon, say so. Because maybe the longest line won't get you that in all situations.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!