imbinarize not working on given image
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
SURBHI GOEL
am 1 Nov. 2020
Kommentiert: SURBHI GOEL
am 1 Nov. 2020
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 Kommentare
Akzeptierte Antwort
drummer
am 1 Nov. 2020
Bearbeitet: drummer
am 1 Nov. 2020
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 Kommentare
drummer
am 1 Nov. 2020
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.
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!