使用cv::imread
我能够将RGB图像读取到cv::Mat
(如下所示)
Mat picture = imread(fileName, -1);
我没有阅读,而是尝试使用以下代码创建RGB图像:
Mat arr1 = Mat(9, 9, CV_8UC1, &data1);
Mat arr2 = Mat(9, 9, CV_8UC1, &data2);
Mat arr3 = Mat(9, 9, CV_8UC1, &data3);
Mat pic;
vector<Mat> mk(3);
mk.at(0)=(arr1);
mk.at(1)=(arr2);
mk.at(2)=(arr3);
merge(mk,pic);
Mat picture
和Mat pic
是否相等?
由于cv::imread
的标志为&#39; -1&#39;这表示'Return the loaded image as is (with alpha channel)'。这是我无法理解的,我如何匹配&#39; pic&#39;到&#39;图片&#39;?(不是图片到图片)
答案 0 :(得分:1)
-1 cv :: imread中的标志表示将加载图像,因为它包括alpha通道(如果存在)。因此,如果您的图像文件具有Alpha通道,则您的图片(Mat)将是CV_8UC4类型的图像,而您的pic(Mat)是3通道图像。因此,在某些情况下它们不会相同。但如果你的图片(Mat)只有3个通道,而它的B,G,R通道分别与data1,data2,data3有相同的数据,那么你的'picture'和'pic'将是相同的。