本文主要是介绍OpenCV学习(2)--cv::Mat转化为QImage,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.目的
在使用Qt和OpenCV写程序的时候,有时候需要使用OpenCV进行处理,然后使用Qt显示出来,因此,有必要考虑将如何将cv::Mat类型转换为QImage类型。
二.原理
网上主流的做法是使用QImage的构造函数进行转换,主要是使用cv::Mat的data来构造一个QImage类型,这样做确实可以达到转换目的,但是,因此这样构造出来的QImage本身并不保存data,因此,在QImage的生存周期内,必须保证cv::Mat中的数据不会被释放。上面的这个问题也是比较容易解决的,主要是通过调用QImage::bits函数来强制QImage进行深层次复制,使得QImage自己保存一份data的副本,这样就可以保证在cv::Mat中的数据被释放的时候,QImage还能正常使用。
这篇关于OpenCV学习(2)--cv::Mat转化为QImage的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!