White 256x256 image gives me 256x256x3
15 次查看(过去 30 天)
显示 更早的评论
I need a white 256x256 pixels image to use it in an assignment. I tried to make it using Paint and downloaded white images from the internet, but for some reason when I read the image, it stored in a 256x256x3 variable (color image format). I tried different extensions (jpg, png).
What is the reason? I attached the images I used and here is the code to read the image.
img = double(imread('white.jpg'));
[l,w] = size(img);
figure
imshow(uint8(img)) % display the test image
title('Original image')
0 个评论
采纳的回答
Image Analyst
2016-11-7
Try this:
whiteImage = 255 * ones(256, 256, 'uint8');
imwrite(whiteImage, 'White Image.png'); % Save to disk.
3 个评论
Walter Roberson
2016-11-8
Paint has no provision for saving as grayscale, only as color and as bitmap (black and white, no gray levels.)
更多回答(1 个)
Walter Roberson
2016-11-7
jpg images are almost always RGB images, even if they appear grayscale. It is possible to have a grayscale jpg image, but the program would have to support creating it.
You can use rgb2gray() to convert to the equivalent grayscale image.
Caution: you have
[l,w] = size(img);
which is going to give you confusing results for RGB images. You should be using
[l, w, chan] = size(img);
2 个评论
Walter Roberson
2016-11-7
编辑:Walter Roberson
2016-11-7
GrayImage = img(:,:,1);
This will not work for general RGB images but it will work for images that are completely tones of gray stored as RGB images.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Modify Image Colors 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!