How to display only one image in the following code?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Nagaraj H
am 25 Sep. 2013
Kommentiert: Image Analyst
am 26 Sep. 2013
In the following code, the output is displayed as 3 images horizontally. What is the reason and how to display only one image? I=imread('Input.bmp'); figure, imshow(I); count=0; [row,column]=size(I) for i=1: row for j=1:column if I(i,j) > 50 & I(i,j) < 70 count=count+1; I1(i,j) = 255; else I1(i,j) = 0; end end end figure, imshow(I1(:,:,1))
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 25 Sep. 2013
Bearbeitet: Image Analyst
am 25 Sep. 2013
The output is displayed as two images (not three) wherever the operating system decides to put them. This is because you call imshow() twice. Anyway you're doing it wrong (i.e. slow and not vectorized). Plus you probably don't need it to be 255 - you probably want it to be binary (logical) which will make it so much easier to process those pixels. If you make it 255 you'll just have to convert to 0 and 1 sooner or later anyway. Try my code:
binaryImage = (I > 50) & (I < 70);
count = sum(binaryImage(:));
figure;
subplot(1,2,1);
imshow(I);
title('Original Image', 'FontSize', 24);
subplot(1,2,2);
imshow(binaryImage);
title('Binary Image', 'FontSize', 24);
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
4 Kommentare
Image Analyst
am 26 Sep. 2013
It's a grayscale image just stored in BMP format which likes to make everything color. Just convert it to gray scale immediately after reading it in.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!