opencv中的imread函数可以用来读取图像,也有很多博客详细介绍了其用法,本文不在重复介绍其各种参数以及使用方法,这里主要讲一下个人的使用心得。
定义一个Mat类型变量 image
image = cv::imread("test.jpg"); //test.jpg本身为灰度图像
此时读出的 数据默认是按照3通道读出的,而不是1通道,即使图像本身是灰度图像,三个通道的像素值是相同的。
如果想读入一张灰度图,主要有以下两种方式:
第一种:image = cv::imread("test.jpg",0);
在读图像的时候,指定第二个参数为0,即按照灰度图形式读出。
第二种: image = cv::imread("test.jpg");
Mat image_gray;
cvtColor(image,image_gray,CV_BGR2GRAY);
先通过默认方式读出图像,再转换为灰度图。
个人觉得第一种方式很容易忘记参数0,第二种方式比较清晰明显。