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");
再次编译 就可以收到了。