Problem with using imbinarize in matlab

조회 수: 12 (최근 30일)
Stewart Tan
Stewart Tan 2019년 8월 27일
댓글: Walter Roberson 2019년 8월 28일
I want to convert this image to a binary image
I tried the following:
img = imread('Oval_H.png');
img = rgb2gray(img);
img = imbinarize(img);
imshow(img)
however, I'm getting the same picture shown after running imbinarize()
The image is now 250x250 logical as shown in the workspace area however, if i try using logical(not()) instead of imbinarize:
img = logical(not(img));
imshow(img)
I get:
Why is it so? Am i using imbinarize wrongly?
  댓글 수: 6
Stewart Tan
Stewart Tan 2019년 8월 28일
@Walter Roberson shouldn't the oval at the center be white and the background black? I expect the output to be the third picture, since it's the output produced by one author, where he used logical(not(img)) instead of imbinarize. Or is there no difference between both methods at all?
Walter Roberson
Walter Roberson 2019년 8월 28일
No, imbinarize assumes that black is background. Your image has a white object in the foreground that has a hole in it, as far as imbinarize is concerned. That changes if you use 'adaptive' and 'foregroundpolarity', 'dark'
logical(not(img)) is the same as not(img) which is the same as ~img which is the same as img==0

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

답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by