Matlab,rgb2gray给出彩色图像作为输出

时间:2014-03-09 19:12:23

标签: matlab image-processing

请您澄清一下,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: {}

我收到输出图像,但它绝对不是灰度..只是一些非常明亮的颜色的图像。我在文档中找不到任何线索 - 也许问题与原始图片的颜色深度有关。

谢谢!

1 个答案:

答案 0 :(得分:4)

即使您有灰色图像(2D阵列),显示的颜色也取决于您使用的颜色图。你应该设置一个灰色的colormap:

u = imread('C:\im1.jpg');
image(rgb2gray(u));
colormap(gray(256)) %// u is uint8, so 256 levels

有关详细信息,请参阅colormap documentation