RGB图像转为灰度图像原理

来源:互联网 发布:大富豪源码论坛 编辑:程序博客网 时间:2024/05/18 13:43

参考文献:http://blog.csdn.net/cool1949/article/details/6649429

RGB图像转为灰度图像

今天在帮李娜同学看代码的时候,突然想到了要细究RGB图像转换为灰度图像的原理。于是开始开始了这篇blog的故事。作为一个小白,阐述可能不是很具体全面。望指正,共同进步。
总的来说RGB图像是有3个通道,也就是一个3维的矩阵,而灰度图,大家都知道只有一个通道,那么如何将一个3通道的事物转为1通道的事物呢?
其实这其中是有一个转换公式的,简单来说,就是把RGB3个通道的分量按照一定的比例计算到灰度图像中。即 公式(1)所阐述的那样,Gray = R*0.299 + G*0.587 + B*0.114 (1)。当然也看过其他几个对该公式的优化,但是自己在实践的过程中效果不理想。有兴趣的同学可以自己尝试下。

% 自己实现的从RGB图像转换为灰度图像function gray = my_rgb2gray(im)% Gray = R*0.299 + G*0.587 + B*0.114[m,n,h] = size(im);if h ==1    gray = im;endgray =zeros(m,n);for i = 1:m    for j = 1:n% 下面三句话就第一句的准确度最好        gray(i,j) = 0.299*im(i,j,1) +0.587*im(i,j,2)+0.114*im(i,j,3);% gray(i,j) = (im(i,j,1)*30 + im(i,j,2)*59+ im(i,j,3)*11+50)/100;%       gray(i,j) = (im(i,j,1)*299 + im(i,j,2)*587 + im(i,j,3)*114 + 500) / 1000;    endendgray = uint8(gray);end

显示的结果如下图
运行结果

原创粉丝点击