请您澄清一下,Matlab中的函数“rgb2gray”是如何工作的?
u=imread('C:\im1.jpg');
image(rgb2gray(u));
原始图片信息:
ans =
Filename: 'C:\im1.jpg'
FileModDate: '09-Mar-2014 20:30:14'
FileSize: 8653
Format: 'jpg'
FormatVersion: ''
Width: 320
Height: 240
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
我收到输出图像,但它绝对不是灰度..只是一些非常明亮的颜色的图像。我在文档中找不到任何线索 - 也许问题与原始图片的颜色深度有关。
谢谢!
答案 0 :(得分:4)
即使您有灰色图像(2D阵列),显示的颜色也取决于您使用的颜色图。你应该设置一个灰色的colormap:
u = imread('C:\im1.jpg');
image(rgb2gray(u));
colormap(gray(256)) %// u is uint8, so 256 levels
有关详细信息,请参阅colormap
documentation