簡體   English   中英

將Alpha通道添加到OpenCV Mat

[英]Add alpha channel to opencv Mat

使用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 pictureMat pic是否相等? 正如cv::imread的標志為-1,它指示“按原樣返回加載的圖像(使用alpha通道)” 我無法理解哪些內容,如何將“圖片”與“圖片”匹配?

-1標志在cv :: imread中指示圖像將被加載,因為它包含alpha通道(如果存在)。 因此,如果您的圖像文件具有Alpha通道,則您的圖片(Mat)將是CV_8UC4類型的圖像,而您的pic(Mat)是3通道圖像。 因此,在某些情況下它們不會相同。 但是,如果您的圖片(Mat)只有3個通道,並且其B,G,R通道的數據分別與data1,data2,data3相同,則您的“圖片”和“ pic”將相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM