Mat img_1 = imread( argv[1], CV_LOAD_IMAGE_COLOR );
这语句出自《SLAM十四讲》中7.2节的ORB程序实践
这语句的意思是读取相应的图片并保存为Mat数据类型,Mat为openCV中最主要的数据存储结构。
等式的左边很好理解,数据类型为Mat ,名称为img_1。
等式右边最主要的是第二个参数,第二个参数为图片的读取类型。
第二个参数有以下几种选择:
IMREAD_UNCHANGED = -1
IMREAD_GRAYSCALE = 0
IMREAD_COLOR = 1
IMREAD_ANYDEPTH = 2
IMREAD_ANYCOLOR = 4
当传入的参数是IMREAD_ANYDEPTH的时候,Mat的默认创建类型为CV_8U,表示一个像素点数据用8位的无符号数char表示,值的范围为0~255。
当传入参数为IMREAD_COLOR时通道为3,也就是存储的是三通道的彩色图片。
当传入参数IMREAD_ANYCOLOR时,根据源图像的通道数决定,如果是单通道的灰度图像则也为灰度图像,如果通道数> 1 则也为通道3。
如果是IMREAD_GRAYSCALE则是单通道。