我想问你一些我想解决的问题的信息。
目前,我有两个opencv应用程序:
应用程序A :我用两种算法跟踪一个对象,每次我在图像文件中保存一个帧,然后用一些我写的命令来控制应用程序的行为shell
应用程序B :我有一个循环,每次读取图像文件并显示它 因此,我将这两个应用程序一起启动,以便使用appA跟踪对象,并使用appB显示结果,每次appA在硬盘中保存的帧时都会读取。
我想在应用程序A中集成应用程序B以显示一个窗口(如:http://lnx.mangaitalia.net/window.jpg),以便有一个循环显示第一个区域中的图像并按顺序使用按钮给出我在shell中编写的命令。
您是否认为可以在Qt或opengl或wxwidgets的区域中显示帧?
哪种解决方案更好,更容易应用?
目前,我的申请B非常简单:
while(1)
{
Mat img=imread("result.jpg",1);
if(!img.empty())
imshow("HOG",img);
if(waitKey(200)==27) break;
}
我想在一个也有一些按钮的窗口中显示这些帧。 特别是,正如你在本文附图中所看到的,我想创建一个分为两部分的窗口:第一部分显示从opencv摄像头捕获的帧,第二部分(或区域)有一些按钮( B1,B2,B3 ..)用户可以按下以控制应用程序行为。 (目前,我在appA中使用开关/盒来捕获键盘键)
有一些基于类似于我想做的模板的例子吗? (就像我之前讲过的jpg图像:http://lnx.mangaitalia.net/window.jpg)
答案 0 :(得分:0)
我建议你只使用OpenCV中的内置GUI:highgui。它具有键盘/鼠标IO,带有消息循环的窗口控制,按钮,滑块等。并且无需对cv图像进行任何转换以显示它们。
看看:http://dasl.mem.drexel.edu/~noahKuntz/openCVTut3.html(它是针对旧的IplImage样式CV编写的,但C ++界面几乎相同,使用cv :: imshow绘制图像)
此外,这里是C ++样式界面的documentation。
还可以在Qt中将您的简历图像转换为QImage并以此方式执行...您应该能够在Google上找到解决方案。
答案 1 :(得分:0)
有一些例子可以说明这一点。
请参阅http://larryo.org/work/information/wxopencv/index.html
基本上你想做的是:
对于GUI部分,您需要创建一个wxFrame或wxWindow,在适当的位置放置一些sizer和按钮。
所以基本上做一个框架,在框架上放置一个sizer,然后将一个面板放在sizer中。 接下来在面板上制作一个垂直尺寸。首先将wxCanvas添加到垂直分级器,然后在垂直分级器中放置一个水平分级器。现在为水平尺寸确定器添加3个按钮,然后就可以使用面板了。