Read and display RGB png/jpg image

136 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)

Categories

Find more on Modify Image Colors in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!