首頁 >後端開發 >C++ >如何可靠地將 cv::Mat 轉換為 QImage?

如何可靠地將 cv::Mat 轉換為 QImage?

Patricia Arquette
Patricia Arquette原創
2024-12-20 02:36:09930瀏覽

How Can I Reliably Convert a cv::Mat to a QImage?

將OpenCV cv::Mat 轉換為QImage

OpenCV cv::Mat 和Qt QImage 是兩種常用的資料結構,用兩種常用的資料結構,用於儲存和操縱圖像。這些格式之間的轉換是一項常見任務,有多種方法可以實現此目的。

Michal Kottman 的解決方案

提供了問題中引用的一個解決方案作者:米哈爾·科特曼。此方法涉及將cv::Mat 資料直接分配給QImage:

QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step1(), QImage::Format_RGB888);

解決限制

但是,在某些情況下,此方法可能不會產生某些影像的預期結果。為了解決這個問題,提出了一個改進的解決方案:

QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step, QImage::Format_RGB888);

關鍵區別

此解決方案的關鍵區別是在函數呼叫中包含img .step 。雖然如果沒有此參數,Qt 可能不會引發錯誤,但它的缺失可能會導致某些影像顯示不正確。

結論

透過合併img.step,此解決方案提供了將cv::Mat 轉換為QImage 的更穩健的方法,確保在所有情況下影像表示一致且準確。

以上是如何可靠地將 cv::Mat 轉換為 QImage?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn