matlab中 rgb2gray() 函数 具体实现

            简介

    rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能,调用这个功能的格式是I = rgb2gray(RGB),意思是将真彩色图像RGB转换为灰度强度图像I 。

        调用格式

I = rgb2gray(RGB)
newmap= rgb2gray(map)

函数算法

灰度化处理有多种处理方式:分量法 最大法 平均法 加权平均法
Matlab 中采用的是对R、G、B分量进行加权平均的算法:
0.2989R+ 0.5870G + 0.1140B
(注意,rgb2ntsc函数也使用相同的权重来计算Y分量)

        具体函数

function imgray=rgbimage2gray(imrgb)
[m,n,t]=size(imrgb);
for i=1:m
    for j=1:n
        for k=1:t
            
            imgray(i,j,k)=0.299*imrgb(i,j,1)+0.587*imrgb(i,j,2)+0.11400*imrgb(i,j,3);%加权实现从真彩到灰度的降维转换
           
        end
           
    end
end

猜你喜欢

转载自blog.csdn.net/corilei/article/details/80559448