Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将图像处理调试到Qt循环中_Qt_Opencv_Qt4 - Fatal编程技术网

将图像处理调试到Qt循环中

将图像处理调试到Qt循环中,qt,opencv,qt4,Qt,Opencv,Qt4,我有以下算法(有效): 从网络摄像头获取图像 处理图像 将图像发送到GUI并显示 GUI界面用Qt编程,所有的图像采集和处理都用OpenCV完成。涉及3个类,分别称为Acquire、Process和Gui Acquire(继承自QObject)获取图像,并调用进程(不继承自QObject)进行图像处理处理将结果返回给获取,获取者发出由Gui(从QObject继承)捕获的信号,并将图像(Mat格式)转换为QImage并绘制 我正在向过程类引入更改,我希望获得视觉反馈。由于所有内容都已执行到Qt的循

我有以下算法(有效):

  • 从网络摄像头获取图像
  • 处理图像
  • 将图像发送到GUI并显示
  • GUI界面用Qt编程,所有的图像采集和处理都用OpenCV完成。涉及3个类,分别称为
    Acquire
    Process
    Gui

    Acquire
    (继承自QObject)获取图像,并调用
    进程
    (不继承自QObject)进行图像处理<代码>处理将结果返回给
    获取
    ,获取者发出由
    Gui
    (从QObject继承)捕获的信号,并将图像(Mat格式)转换为QImage并绘制

    我正在向
    过程
    类引入更改,我希望获得视觉反馈。由于所有内容都已执行到Qt的循环中,因此我无法使用
    cv::namedWindow
    cv::imshow
    函数(没有显示任何内容)


    问题是:没有make
    Process
    Gui
    friends,有任何快速的方法进行可视化调试,以了解
    Process
    内部发生了什么,或者使用信号/插槽机制或任何其他涉及对程序结构进行重大更改的解决方案连接它们?

    您可以创建另一个类,并将调试输出的所有代码放入其中。将进程连接到此类以发送调试信息。

    您的问题尚不清楚。您说过可以将数据从进程发送到Gui。为什么不能使用此功能发送需要显示的调试数据?我没有。Acquire获取图像,将其发送给Process,Process返回要获取的结果,Acquire发出Gui捕获的信号,Gui将处理后的图像绘制在屏幕上。无论如何,我将编辑这个问题,使其更加清晰。您可以在过程中创建另一个QWidget,在单独的窗口中显示它,并将调试信息放入其中。您还可以将调试信息写入文件。进程从QObject继承以发出信号(它不会在屏幕上绘制任何内容)。要创建绘制调试信息小部件所需的所有代码,需要对许多代码进行更改(我希望使调试尽可能简单)。可以将图像保存到文件。。。但我正在调试视频,您可以创建另一个类并将调试输出的所有代码放入其中。将进程连接到此类以发送调试信息。我创建了一个小项目来演示如何执行此操作。也许有人会发现它很有用: