0
我有如下定義標籤:包括圖像成標籤
QLabel* label_min;
label_min = new QLabel(this);
label_min->setGeometry(QRect(10, 20, 640, 480));
我也有一份簡歷::墊形象:
cv::Mat Mat_dst;
我沒有找到一種方法將該圖像包含在上面的標籤中。
有沒有辦法做到這一點?
我有如下定義標籤:包括圖像成標籤
QLabel* label_min;
label_min = new QLabel(this);
label_min->setGeometry(QRect(10, 20, 640, 480));
我也有一份簡歷::墊形象:
cv::Mat Mat_dst;
我沒有找到一種方法將該圖像包含在上面的標籤中。
有沒有辦法做到這一點?
我想你應該首先將cv :: Mat轉換爲QImage(這看起來並不平凡),然後將該QImage轉換爲QPixmap並使用setPixmap函數。正如我所說的,將cv :: Mat圖像轉換爲QImage並不是微不足道的。它取決於你的圖像類型(RGB或單色或...)以及cv :: Mat對象的生命週期,如果將cv :: Mat圖像深層複製到QImage對您來說代價昂貴。
cv::Mat cvImg; // your opencv image
QImage img = OpenCV2Qt(cvImg); // Implementation of this function depends on cvImage
label->setPixmap(QPixmap::fromImage(img));
對於CV ::墊轉換爲QImage的對象,因爲關於供給圖像的類型沒有詳細信息,我相信這是最好看的計算器以下職位:
how to convert an opencv cv::Mat to qimage
一記最後一件事是,如果你使用的是RGB圖像,OpenCV的存儲在RGB爲了他們在BGR訂單數據,但Qt的專賣店;所以你必須調用cvtColor(mat,rgb,CV_BGR2RGB)或qimg.rgbSwapped()。