Read and display RGB png/jpg image

136 次查看(过去 30 天)
Hi,
I need help in reading and displaying RGB png and jpg image. I am using the follwoing code, but imshow is displaying grayscale image only.
original = imread('C:\Users\R\Desktop\Image\image1.png');
original = im2double(original);
imshow(original)
title('Original image')
  2 个评论
Ameer Hamza
Ameer Hamza 2020-12-2
编辑:Ameer Hamza 2020-12-2
If you open 'image1.png' outside MATLAB, does it show a colored image? Can you attach this image?

请先登录,再进行评论。

采纳的回答

Ameer Hamza
Ameer Hamza 2020-12-2
You png file is actually an indexed image with a colormap. You can see it in color using following statements
[img, map] = imread('image.png');
imshow(img, map)
or, you convert it to rgb, you can use ind2rgb()
[img, map] = imread('image.png');
img_rgb = ind2rgb(img, map);
imshow(img_rgb)
  7 个评论
Ameer Hamza
Ameer Hamza 2020-12-3
How is the original defined? Is it rgb image of indexed image? Also, is noisyimage and noisyRGB same?
Image Analyst
Image Analyst 2020-12-3
original must be either a gray scale image OR an RGB image. It makes absolutely no sense if original is a indexed image. You MUST convert it to an RGB image first, and then to a gray scale image after that if you want it as gray scale.
[indexedImage, map] = imread('image.png');
% Convert indexed image to RGB true color image.
rgbImage = ind2rgb(indexedImage, map);
% Add noise to the RGB true color image.
noisyRGBImage = imnoise(rgbImage, 'gaussian',0,0.01);
imshow(noisyRGBImage)
% Convert RGB true color image to a gray scale image.
grayImage = rgb2gray(rgbImage); % Do not pass in indexedImage!
% Add noise to the gray scale image.
noisyGrayImage = imnoise(grayImage, 'gaussian',0,0.01);
imshow(noisyGrayImage)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Modify Image Colors 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by