关于rgb2gray和IMREAD_GRAYSCALE的不同效果

2019-04-25  本文已影响0人  叫个鸡儿

       偶然间发现使用imread("img",IMREAD_GRAYSCALE)和cvtColor(img,grayimg,CV_RGB2GRAY)得到的图片有差异,IMREAD_GRAYSCALE得到的图像更亮一点。

IMAGE_GRAYSCALE CV_RGB2GRAY

查了查opencv帮助文档,在imread函数下有如下注明:

        原来opencv默认读取图像按照B G R的顺序进行存储,因此使用IMREAD_GRAYSCALE时,其内建的灰度转换方式是BGR2GRAY。

#BGR2GRAY:转换公式为Gray = 0.1140*B + 0.5870*G + 0.2989*R

#RGB2GRAY:转换公式为Gray = 0.1140*R + 0.5870*G + 0.2989*B

       验证一下BGR2GRAY与IMREAD_GRAYSCALE的效果是否相同。

BGR2GRAY IMAGE_GRAYSCALE

     结果完全一致,其实在MATLAB,IDL等图像处理软件中都是默认按照BGR的顺序来处理的,竟然忘了,Mark。

上一篇 下一篇

猜你喜欢

热点阅读