hi, I have a code :
image=imread('guava.jpg');
figure
imshow(image)
imR1=image(:,:,1);
imG1=image(:,:,2);
imB1=image(:,:,3);
gray = uint8(0.299*double(imR1) + 0.587*double(imG1) + 0.114*double(imB1));
%opening operation
di = strel('line',50,100);
dilate = imdilate(gray,di);
er = strel('line',50,100);
erode = imerode(dilate,er);
%difference image between opening operation and grayscale
difference_image = double(gray) - double(erode);
figure; % Open up another figure window.
subplot (2,2,1)
imshow(dilate)
subplot (2,2,2)
imshow(erode)
subplot(2,2,3)
imshow(difference_image, []); % Display the difference image.
outputImage = uint8(255 * mat2gray(difference_image));
figure
imshow(outputImage)
the result is like :
I need to transform that image into this one :
they said "convert to binary image". I tried with imbinarize and im2bw, the result is all white. what should I do to get that binary image?

2 Comments

Can you provide the original image?
sure
that's the original image

Sign in to comment.

 Accepted Answer

The image you show is more like a gray scale image. To get a binary image, do this:
rgbImage = imread('original2.PNG');
binaryImage = rgbImage(:,:,1) < 200;
imshow(binaryImage);

3 Comments

but it says binary image. then, if I have this image:
what should I do to transform that image into this one :
Zhiyu Xiao comments to Nanda Sulthan Estupratama:
This is a really important question whose answer can be applied to many other things.
It looks like you can just pass Nanda's original low contrast image into imadjust() to get an image with increased contrast.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!