필터 지우기
필터 지우기

why does bwperim make the border WHITE?!!

조회 수: 1 (최근 30일)
Steven
Steven 2013년 12월 25일
편집: Steven 2014년 1월 1일
I want to use bwperim to calculate the perimeter of an object, but I got a strange thing!
I use bwperim in two different states: first to the original binary image and second to its inverse, i.e.,:
%%binaryImage
perim1 = bwperim (binaryImage);
perim2 = bwperim (~binaryImage);
The strange thing is that the first one (perim1) gives an image that is almost black (except the detected boundaries, of course), but:
Exactly, the borders of the whole image, I mean the FIRST row and column and the LAST row and column are white! I mean it has given the value of 1 to the pixels of the image border! Why?!!
For the second one (perim2), this is not the case and it is correct as the original image.
The binary image:
perim1 (with white border):
perim2:
Thanks so much!
Steven
  댓글 수: 6
Walter Roberson
Walter Roberson 2013년 12월 25일
but be careful about the possibility that some of your image touches the border.
Steven
Steven 2013년 12월 25일
for creating binary, I used:
binaryimage = im2bw(gray_scale_image,graythresh(gray_scale_image)

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

채택된 답변

Image Analyst
Image Analyst 2013년 12월 25일
I don't think perim1 should have the edges of the image as white. Can you post the binary image so I can check it out?
  댓글 수: 4
Steven
Steven 2013년 12월 25일
Thanks.
How about using imclearborder? It does the same right?
Thanks.
Steven
Walter Roberson
Walter Roberson 2013년 12월 25일
Erasing the borders yourself is safer if you might possibly have an object touching the edge. If you know you will not, then imclearborder() is more convenient.

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

추가 답변 (0개)

태그

Community Treasure Hunt

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

Start Hunting!

Translated by