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!