Conversion OpenCV cv::Mat en QImage
OpenCV cv::Mat et Qt QImage sont deux structures de données couramment utilisées pour stocker et manipuler des images. La conversion entre ces formats est une tâche courante, et il existe plusieurs méthodes pour y parvenir.
Solution de Michal Kottman
Une solution, telle que référencée dans la question, est fournie par Michael Kottman. Cette méthode implique l'affectation directe des données cv::Mat à QImage:
QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step1(), QImage::Format_RGB888);
Réponse aux limitations
Cependant, dans certains cas, cette approche peut ne pas donner le résultats attendus pour certaines images. Pour résoudre ce problème, une solution améliorée est proposée :
QImage imgIn= QImage((uchar*) img.data, img.cols, img.rows, img.step, QImage::Format_RGB888);
Différence clé
La différence cruciale dans cette solution est l'inclusion de img.step dans l'appel de fonction . Bien que Qt ne puisse pas générer d'erreur sans ce paramètre, son absence peut conduire à un affichage incorrect de certaines images.
Conclusion
En incorporant img.step, cette solution fournit une méthode plus robuste pour convertir cv::Mat en QImage, garantissant une représentation d'image cohérente et précise dans tous les cas.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!