MATLAB Answers

Image shows with imshowpair, but not with imshow

4 views (last 30 days)
I am writing a function that reads an image and converts it to BW. I am able to use imshowpair to display the unedited and edited images next to each other, but can't individually show just the edited (BW) image. What should I do?
midAirImage = imread("MidAirTest.jpg");
bwImage = imbinarize(midAirImage,'adaptive','ForegroundPolarity','dark','Sensitivity',0.4);
imshowpair(midAirImage, bwImage, 'montage')

Accepted Answer

Abhishek Gangwar
Abhishek Gangwar on 22 Jul 2020
Edited: Abhishek Gangwar on 22 Jul 2020
Your binary image should be 2 dimensional, if it is not convert the original image into gray cale and then create binary image,
midAirImage = imread("MidAirTest.jpg");
midAirImage = rgb2gray(midAirImage);
bwImage = imbinarize(midAirImage,'adaptive','ForegroundPolarity','dark','Sensitivity',0.4);
imshowpair(midAirImage, bwImage, 'montage')
imshow(bwImage);

More Answers (1)

Constantino Carlos Reyes-Aldasoro
You have two options, use subplots
subplot(121)
imagesc(midAirImage)
subplot(122)
imagesc( bwImage)
Alternatively you can concatenate your images like this
imagesc( [ midAirImage bwImage])
Notice that the binary will be between 0 and 1 and the original between 0 and 255 so you need to scale:
imagesc( [ midAirImage 255*bwImage])
Hope this helps to solve your problem.

Community Treasure Hunt

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

Start Hunting!

Translated by