opencv 学习笔记——读入一张图片,并将其转为灰度图

读入一张RGB彩色图片,并将其转为灰度图

源码如下:

#include
#include
using namespace cv;
using namespace std;
int main()
{
Mat srcImage = imread("E:\\matlab_file\\defocus\\set_database\\Ref_duoshizhen\\F_1_l.bmp");
imshow("轮盘",srcImage);
waitKey(0);
Mat dst;
cvtColor(srcImage, dst, CV_RGB2GRAY);
imshow("轮盘", dst);
waitKey(0);
return 1;

}

Mat 类:作为存储图像的数据结构,无论是彩色图像还是灰度图像,都存成二维的矩阵

waitKey(delay):不断刷新图像,频率时间为delay,单位为ms。在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下键,则接续等待(循环)。如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件。

cvtColor(srcImage, dst, code):

    srcImage:输入图像

     dst:输出图像

     code:色彩空间转换的模式

            CV_RGB2GRAY:<彩色图像——>灰度图像>
            CV_BGR2YCrCb, CV_RGB2YCrCb, CV_YCrCb2BGR, CV_YCrCb2RGB      

            CV_BGR2HSV, CV_RGB2HSV, CV_HSV2BGR, CV_HSV2RGB  

           CV_BGR2GRAY表示转换为灰度图,CV_BGR2HSV将图片从RGB空间转换为HSV空间。其中当code选用CV_BGR2GRAY时,dst需要是单通道图片。当code选用CV_BGR2HSV时,对于8位图,需要将RGB值归一化到0-1之间。这样得到HSV图中的H范围才是0-360,S和V的范围是0-1。

你可能感兴趣的:(opencv)