MATLAB: How to preprocess this image.

preprocessing

Hello. I am preprocessing the image using convexhull method. Initial and intermediate methods are fine. The last method in displaying preprocessing image I am not getting the required display. I need only the rounded coins to get displayed at the end of preprocessed image without any black pixels. But it is displaying only with white pixel values. Pixel vales are copied properly from the original image(I) to preprocessed Image(PI). I am executing with the following code.
clc;clear;
subplot(2,3,1);
I = imread('coins.png');
imshow(I);
title('Original');
subplot(2,3,2);
BW = imbinarize(I);
imshow(BW);
title('Binary');
subplot(2,3,3);
CH = bwconvhull(BW);
imshow(CH);
title('Union Convex Hull');
subplot(2,3,4);
CH_objects = bwconvhull(BW,'objects');
imshow(CH_objects);
title('Objects Convex Hull');
for a=1:size(I,1)
for b=1:size(I,2)
if(CH_objects(a,b)==0)
PI(a,b)=1;
else
PI(a,b)=I(a,b);
end
end
end
subplot(2,3,5);
imshow(PI);
title('Preprocessed Image');

Best Answer

PI=I;
PI(~CH_objects)=255;
imshow(PI);
title('Preprocessed Image');
Capture.PNG
Related Question