Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Menukar cv::Mat kepada QImage?

Bagaimana Saya Boleh Menukar cv::Mat kepada QImage?

Patricia Arquette
Patricia Arquetteasal
2024-12-20 02:36:09933semak imbas

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

Menukar OpenCV cv::Mat kepada QImage

OpenCV cv::Mat dan Qt QImage ialah dua struktur data yang biasa digunakan untuk menyimpan dan memanipulasi imej. Menukar antara format ini adalah tugas biasa dan terdapat beberapa kaedah untuk mencapainya.

Penyelesaian Michal Kottman

Satu penyelesaian, seperti yang dirujuk dalam soalan, disediakan oleh Michal Kottman. Kaedah ini melibatkan penyerahan terus data cv::Mat kepada QImage:

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

Mengatasi Had

Walau bagaimanapun, dalam beberapa keadaan, pendekatan ini mungkin tidak menghasilkan hasil yang dijangkakan untuk imej tertentu. Untuk menangani perkara ini, penyelesaian yang lebih baik dicadangkan:

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

Perbezaan Utama

Perbezaan penting dalam penyelesaian ini ialah kemasukan img.step dalam panggilan fungsi . Walaupun Qt mungkin tidak menimbulkan ralat tanpa parameter ini, ketiadaannya boleh menyebabkan paparan imej tertentu yang tidak betul.

Kesimpulan

Dengan memasukkan img.step, penyelesaian ini menyediakan kaedah yang lebih mantap untuk menukar cv::Mat kepada QImage, memastikan perwakilan imej yang konsisten dan tepat dalam semua kes.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Menukar cv::Mat kepada QImage?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn