opencv结合Qt开发大恒摄像头程序时,我利用Qt的线程读取摄像头帧序列,在摄像头采集完
一帧后将RAW数据转为RGB数据后,在利用RGB数据格式化为Mat数据结构后,利用自定义信号
从采集线程发送Mat结构数据到主线程的槽函数用于UI显示。信号槽如下:
// 采集线程类
signals:
void captureAFrame(cv::Mat f);
// 主线程类
public slots:
void slotOnCaptureAFrame(cv::Mat f);然后一直收不到槽的响应,后来仔细查看编译信息,发现以下提示:
QObject::connect: Cannot queue arguments of type 'cv::Mat' (Make sure 'cv::Mat' is
registered using qRegisterMetaType().)
解决方法:
1.添加头文件: #include <QMetaType>
2.增加注册函数注册:qRegisterMetaType< cv::Mat >("cv::Mat");
再次编译 就可以收到了。
本文介绍如何在Qt应用中通过OpenCV库读取大恒摄像头的数据,并实现跨线程间的数据传递。文章详细说明了如何解决在Qt线程间传递cv::Mat类型数据时遇到的问题,并给出了具体的解决步骤。
1747

被折叠的 条评论
为什么被折叠?



