Why does MATLAB read a picture and add noise on it?
2 次查看(过去 30 天)
显示 更早的评论
Hi,
I typed in matlab the following command:
x=imread('pic.gif')
imshow(x);
I would expect that the output image look exactly like the one MATLAB read. However, it didn't happen. MATLAB gave an output that looked like the original one, but with a lot of noise... My question is why don't I get exactly the same image?
4 个评论
采纳的回答
Titus Edelhofer
2015-3-26
Hi,
your image is an indexed image, not RGB. Therefore you need to read the colormap as well:
[a,b] = imread('pic.gif');
imshow(a);
colormap(b);
Titus
更多回答(1 个)
Jan
2015-3-26
Or:
[c, map] = imread('pic.gif');
img = ind2rgb(c, map);
imshow(img)
4 个评论
Image Analyst
2015-3-26
If you didn't supply a color map, and the image was uint8, then it just chose the gray scale colormap. But since the pixel value is really a row number into a colormap instead of an intensity value, the image most likely looked like a bunch of black/white/gray garbage/noise.
Titus Edelhofer
2015-3-27
It was not 100% noise, since the colormap of the image had some similarity to simple gray scale. That's why it did not look completely weird but just "with some noise".
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Blue 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!