將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中文網其他相關文章!