使用在远程主机上运行的opencv在本地显示器上显示图像?

使用在远程主机上运行的opencv在本地显示器上显示图像?,opencv,embedded,gtk,Opencv,Embedded,Gtk,我有一段使用openCV的简单代码,我想在ARM开发板(飞思卡尔MX)上运行它,该开发板上没有附加显示器。 几天来,我一直在尝试在这个远程设备上运行代码,并在本地机器上显示其图形输出,但运气不好 我的设置: Ubuntu 10.04在我的本地机器上 Linux2.6在主板上运行,以及我能想到的所有相关软件包 与本地计算机的以太网连接 启用GTK时静态编译openCV 使用GDB/GDBServer进行SSH调试 而且一切都运行得很好,openCV的HIGHGUI显示功能没有任何影响 一些注意

我有一段使用openCV的简单代码,我想在ARM开发板(飞思卡尔MX)上运行它,该开发板上没有附加显示器。 几天来,我一直在尝试在这个远程设备上运行代码,并在本地机器上显示其图形输出,但运气不好

我的设置:

  • Ubuntu 10.04在我的本地机器上
  • Linux2.6在主板上运行,以及我能想到的所有相关软件包
  • 与本地计算机的以太网连接
  • 启用GTK时静态编译openCV
  • 使用GDB/GDBServer进行SSH调试
而且一切都运行得很好,openCV的HIGHGUI显示功能没有任何影响

一些注意事项:

  • 我可以将DISPLAY env var设置为指向本地计算机,然后 gtk demo/xterm/whatever-is-using-X出现在我的本地机器上, 即使是从我用于运行和 调试我的代码
  • 我试图避免进入GTK/QT,并修补/准备我自己的显示包装。我觉得我只需要对GTK/HIGHGUI配置进行一个小的修改就可以了
我的代码(编译和运行正常,无图形输出接受):

有人能帮忙吗

谢谢


更新:

解决


在阅读我刚刚发布的消息时,我发现-我实际上使用了getchar()而不是cvWaitKey(),这似乎很重要…

您是否在远程ARM板上执行了任何在本地计算机上成功显示的X11应用程序?我不认为这个问题是OpenCV独有的。
cv::Mat im = cv::imread("/root/capture.jpg");
//im is valid and not empty at this point
cvNamedWindow( "test" );
cv::imshow( "test", im);
cvWaitKey();
cvDestroyWindow( "test" );