imbinarize not working on given image

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
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.

 Risposta accettata

drummer
drummer il 1 Nov 2020
Modificato: drummer il 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 Commenti

Thanks but can you please tell which field of info to use in if condition? Is it NumberOfSamples?
Well,
info.BitDepth
didn't work?
Check the linked documentation in FYI. There's plenty of information there. Perhaps it might help you.
Cheers
Also anyway I can directly do grayImage = rgb2gray(Image); without using the if condition, so that's not the problem. Problem is how to binarize.
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.
Thanks a lot. Erosion worked.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Image Processing and Computer Vision in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by