如何在 MATLAB 中将彩色图像转换为灰度图像?

Posted

技术标签:

【中文标题】如何在 MATLAB 中将彩色图像转换为灰度图像?【英文标题】:How can I convert a color image to grayscale in MATLAB? 【发布时间】:2010-12-19 06:37:13 【问题描述】:

我正在尝试在计算机视觉中实现一种算法,我想在一组图片上进行尝试。图片都是彩色的,但我不想处理这个。我想将它们转换为足以测试算法的灰度。

如何将彩色图像转换为灰度图像?

我正在阅读它:

x = imread('bla.jpg');

我可以添加任何参数到imread 以将其读取为灰度吗?有什么办法让我在阅读后将x 更改为灰度

【问题讨论】:

【参考方案1】:

彩色图像

灰度图像

  bg = imread('C:\Users\Ali Sahzil\Desktop\Media.png');  // Add your image 
  redChannel = bg(:, :, 1);
  greenChannel = bg(:, :, 2);
  blueChannel = bg(:, :, 3);
  grayImage = .299*double(redChannel) + .587*double(greenChannel) 
  +.114*double(blueChannel);
  imshow(grayImage);

【讨论】:

这是不是比使用内置的rgb2gray更好的解决方案? 是的,使用内置功能完全没问题,但是操作手册可以让您更好地了解如何生成灰度图像。【参考方案2】:

使用imread()rgb2gray() 函数获取灰度图像。

例子:

I = imread('input.jpg');
J = rgb2gray(I);
figure, imshow(I), figure, imshow(J); 

如果您有彩色地图图像,则必须执行以下操作:

[X,map] = imread('input.tif');
gm = rgb2gray(map);
imshow(X,gm);

您自己实现的rgb2gray 算法是:

f(R,G,B) = (0.2989 * R) + (0.5870 * G) + (0.1140 * B)

【讨论】:

【参考方案3】:

使用rgb2gray 去除色调和饱和度(即,转换为灰度)。 Documentation

【讨论】:

他们真的需要停止移动文档。 :)【参考方案4】:

I=imread('yourimage.jpg');
p=rgb2gray(I)

【讨论】:

我知道答案很简单,但这里不鼓励仅使用代码的答案。请添加一些上下文,解释 rgb2gray 的作用,并可能链接到文档。【参考方案5】:

您可以使用此代码:

im=imread('your image');
k=rgb2gray(im);
imshow(k);

使用matlab

【讨论】:

【参考方案6】:

我找到了这个链接: http://blogs.mathworks.com/steve/2007/07/20/imoverlay-and-imagesc/ 它有效。

上面写着:

im=imread('your image');
m=mat2gray(im);
in=gray2ind(m,256);
rgb=ind2rgb(in,hot(256));
imshow(rgb);

【讨论】:

【参考方案7】:
x = imread('bla.jpg');
k = rgb2gray(x);
figure(1),imshow(k);

【讨论】:

>> k = rgb2gray(im); 'uint8' 类型的输入参数的未定义函数 'rgb2gray'。

以上是关于如何在 MATLAB 中将彩色图像转换为灰度图像?的主要内容,如果未能解决你的问题,请参考以下文章

matlab中将灰度图转化为二值图后,有如何转化为灰度图

matlab 如何将彩图转成灰度图

matlab怎么读取一幅图像,并转换为灰度图像

matlab怎么读取一幅图像,并转换为灰度图像

如何将 WORD中将彩色图片变成灰度图 或 黑白图 ?

如何在 Python 中将 RGB 图像转换为灰度图像?