imread()函数的声明如下:
Mat imread(const string& filename, int flags)
其中参数filename是被读取或者保存的图像文件名;在imread()函数中,flag参数值有三种情况:
(1) flag>0, 该函数返回3通道图像,如果磁盘上的图像文件是单通道的灰度图像,则会被强制转为3通道;
(2) flag=0, 该函数返回单通道图像,如果磁盘的图像文件是多通道的则会被强制转为单通道;
(3) flag<0, 则函数不对图像进行通道转换
测试:a.RGB图像
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main(){
cv::Mat image = cv::imread("boldt.jpg");
if (!image.data){
return 0;
}
cv::imshow("image", image);
cv::waitKey(0);
cv::Mat image1 = cv::imread("boldt.jpg",1);
if (!image.data){
return 0;
}
cv::imshow("image1", image1);
cv::waitKey(0);
cv::Mat image2 = cv::imread("boldt.jpg",0);
if (!image.data){
return 0;
}
cv::imshow("image2", image2);
cv::waitKey(0);
cv::Mat image3 = cv::imread("boldt.jpg",-1);
if (!image.data){
return 0;
}
cv::imshow("image3", image3);
cv::waitKey(0);
return 0;
}
测试结果: