如何在 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 中将彩色图像转换为灰度图像?的主要内容,如果未能解决你的问题,请参考以下文章