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

时间:2009-11-22 19:12:04

标签: matlab colors image-manipulation grayscale

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

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

我正在阅读:

x = imread('bla.jpg');

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

7 个答案:

答案 0 :(得分:25)

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

答案 1 :(得分:8)

x = imread('bla.jpg');
k = rgb2gray(x);
figure(1),imshow(k);

答案 2 :(得分:2)

我找到了这个链接: 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);

答案 3 :(得分:1)

您可以使用此代码:

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

使用matlab

答案 4 :(得分:0)

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

答案 5 :(得分:0)

使用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)

答案 6 :(得分:0)

彩色图像

Color Image

灰度图像

Gray Scale image

  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);