Read and display RGB png/jpg image

171 views (last 30 days)
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 Comments
Ameer Hamza
Ameer Hamza on 2 Dec 2020
Edited: Ameer Hamza on 2 Dec 2020
If you open 'image1.png' outside MATLAB, does it show a colored image? Can you attach this image?

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 2 Dec 2020
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 Comments
Ameer Hamza
Ameer Hamza on 3 Dec 2020
How is the original defined? Is it rgb image of indexed image? Also, is noisyimage and noisyRGB same?
Image Analyst
Image Analyst on 3 Dec 2020
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)

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!