Read and display RGB png/jpg image
136 views (last 30 days)
Show older comments
Kiruthiga Sekar
on 2 Dec 2020
Commented: Image Analyst
on 3 Dec 2020
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
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?
Accepted Answer
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
on 3 Dec 2020
How is the original defined? Is it rgb image of indexed image? Also, is noisyimage and noisyRGB same?
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)
More Answers (0)
See Also
Categories
Find more on Modify Image Colors in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!