【问题标题】:Debug image processing into Qt loop将图像处理调试到 Qt 循环中
【发布时间】:2013-08-07 15:00:19
【问题描述】:

我有以下算法(工作):

  1. 从网络摄像头获取图像
  2. 过程图像
  3. 将图像发送到 GUI 并显示

GUI界面是用Qt编程的,所有的图像采集和处理都是用OpenCV完成的。涉及 3 个类,分别称为 AcquireProcessGui

Acquire(继承自QObject)抓取图像并调用Process(不继承自QObject)进行图像处理。 Process 将结果返回给AcquireAcquire 发出一个信号,Gui(继承自 QObject)将图像(Mat 格式)转换为 QImage 并绘制它。

我正在对Process 类进行更改,我希望获得视觉反馈。由于所有内容都在 Qt 的循环中执行,我无法使用 cv::namedWindowcv::imshow 函数(什么都没有出现)。

问题是:有任何快速的方法可以进行可视化调试以了解 Process 内部发生的情况,而无需使 ProcessGui 成为朋友,或者使用信号/插槽机制或任何其他解决方案连接它们涉及到程序结构的重大变化?

【问题讨论】:

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

标签: qt opencv qt4


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2019-03-20
  • 1970-01-01
  • 2019-10-20
  • 1970-01-01
  • 2015-08-10
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
相关资源
最近更新 更多