小编Raf*_*ens的帖子

如何发送包含cv :: Mat的Qt信号?

简而言之,我得到以下错误:

QObject::connect: Cannot queue arguments of type 'cv::Mat'
(Make sure 'cv::Mat' is registered using qRegisterMetaType().)
Run Code Online (Sandbox Code Playgroud)

我要做的是将包含两个cv :: Mat图像的信号从QThread发送到主线程,以便我可以显示输出.没有编译时错误,但是当我运行程序时,它会卡在qglobal.h(inline void qt_noop() {})的断点处.

我试图添加Q_DECLARE_METATYPE(cv::Mat)到代码,无济于事.我现在很蠢.

在QThread类中:

signals:
void sndFlow(cv::Mat &leftEye, cv::Mat &rightEye);

void eyesDriver::run()
{
    forever
    {
        flow->draw(leftEye, rightEye);
        sndFlow(leftEye, rightEye);
    }
}
Run Code Online (Sandbox Code Playgroud)

捕获QObject类:

public slots:
void recFlow(cv::Mat &leftEye, cv::Mat &rightEye);

void myClass::recFlow(cv::Mat &leftEye, cv::Mat &rightEye)
{
    cv::imshow("left", leftEye);
    cv::imshow("rigth", rightEye);
    cv::waitKey(40);
}
Run Code Online (Sandbox Code Playgroud)

主要:

Q_DECLARE_METATYPE(cv::Mat)
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qRegisterMetaType< cv::Mat >("cv::Mat");
    // …
Run Code Online (Sandbox Code Playgroud)

qt opencv signals-slots qthread

9
推荐指数
1
解决办法
5453
查看次数

KDevelop 4.3.1不解析Eigen 3

我在ubuntu 12.04上使用KDevelop 4.3.1.它没有解析Eigen 3库,而这个发行说明说它应该.

它比这更微妙.

using namespace Eigen在代码之前放置一个时,KDevelop正在解析Eigen库的一部分.但是,它不会解析为类(例如,Matrix2d::Identity()不会解析Identity in ).

当使用嵌套的命名空间时,它将解析命名空间,但Eigen::Matrix2d除了被称为internal(即Eigen::internal)之外的其他内容(例如,将不会解析Matrix2d ).

我只发现了这个与我的问题类似的帖子,虽然这里的问题在KDevelop崩溃后解决了.有没有人有更可靠的溶出度?是否有人有同样的问题?

亲切的问候

PS:构建代码工作正常.

parsing kdevelop eigen

5
推荐指数
0
解决办法
240
查看次数

标签 统计

eigen ×1

kdevelop ×1

opencv ×1

parsing ×1

qt ×1

qthread ×1

signals-slots ×1