imbinarize not working on given image
조회 수: 13 (최근 30일)
이전 댓글 표시
So I have attached the image of coins I am using. I need to make this image black and white but it's just showing an area whole filled with white. When I run on coins.tif file provided in MATLAB, my code works fine but not on this image. Please tell me where I am going wrong. TIA
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/399194/image.jpeg)
Image = imread('Coin.jpg');
[rows, columns, numberOfColorBands] = size(Image);
if numberOfColorBands > 1
grayImage = rgb2gray(Image);
else
grayImage = Image;
end
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
binaryImage = imbinarize(grayImage);
subplot(3, 1, 1);
imshow(Image, []);
subplot(3, 1, 2);
imshow(grayImage, []);
subplot(3, 1, 3);
imshow(binaryImage, []);
The best binary image I could get is by using this line
binaryImage = imbinarize(grayImage,'adaptive','ForegroundPolarity','bright','Sensitivity',0.13);
But still I am getting numerous white dots here and there in the black area like this.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/399324/image.jpeg)
댓글 수: 0
채택된 답변
drummer
2020년 11월 1일
편집: drummer
2020년 11월 1일
by using size, you're obtaining the dimension information of the image. So your 3rd coordinate (numberOfColorBands) would be the position in the stack (of a volumetric image), and not the # channels of your image.
Try using
info = imfinfo('yourImage')
% Then, use info in your if condition.
Cheers
댓글 수: 5
drummer
2020년 11월 1일
Well, I see you could get your binary image.
To improve the noise in the black background, you can dilate/erode your B&W output.
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!