主题 : 想问问在opencv中使用qt作为Gui的问题? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 26959
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2010-08-17
最后登录: 2012-08-24
楼主  发表于: 2010-10-20 11:22

 想问问在opencv中使用qt作为Gui的问题?

  大家好,我现在想使用opencv做图像处理的工作,我参考资料交叉编译了有关opencv的,然后又编译了opencv下的实例,交叉编译后放到mini2440上运行时,出现这样的错误:OpenCV ERROR: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ )
        in function cvNamedWindow, window.cpp(71)
Terminating the application...
        called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...
        called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...
        called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...
        called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...
        called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...
        called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...
        called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...
        called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...
        called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...
    我知道这些错误是由于没有移植gtk的问题,但是我又想现在的板子中本来就有qt,我想能不能在opencv中把qt作为它的Gui不知道行不行,还是直接使用包含gtk+的linux内核?我希望大家给我指点下,谢谢大家了。
级别: 新手上路
UID: 16042
精华: 0
发帖: 47
金钱: 245 两
威望: 49 点
综合积分: 94 分
注册时间: 2010-03-13
最后登录: 2012-03-23
1楼  发表于: 2010-10-23 00:37
应该是不可以,另外内核也不可能包含gtk+,那是库只能自己移植。就目前看的资料来讲,gtk+是基于X-window,然后X-window可以基于DirectFB。X-window比较复杂,似乎可以利用TinyX来替代(似乎就是Xfree86),DirectFB应该就是Framebuffer。正在学习OMAP3530(仅看ARM核也就相当于个A8了),TI的PSP包中提供的内核有FBDEV支持,按理说至少GTK+配上DirectFB是可行的。但是内置的SGX加速器就浪费掉了,而且X-window好像又和OpenGL有关,SGX在硬件上似乎可以支持OpenGL,然后我就纠结在这里了,再查查资料看。GTK+和DirectFB似乎有前人的经验可用,自行google一下吧。
    我也正研究自定制图形界面,目前尚未有太大进展。现在在自己从头照着FHS和《Building Embedded Linux System》做文件系统,尝试把gtk+正经移植过去。不过说起来,BeagleBoard上面已经跑的是Angstrom的界面了,所以肯定是可以成功的,就是还要非常多的“试”验。前天尝试着做了一次,cario库似乎出了点问题,然后卡着了,应该是要先把X-window或者xlib解决了才可以。
级别: 新手上路
UID: 26959
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2010-08-17
最后登录: 2012-08-24
2楼  发表于: 2010-10-27 20:31

 回 1楼(gdglacier) 的帖子

难道是我理解错了,我看到这个论坛上的帖子的内容http://www.aiothome.net/simple/index.php?t4099.html,说是已经有基于GTK+的distribution移植到了mini2440。看了这我就认为已经有内核包含gtk+,那是不是已经有基于mini2440的gtk+了?谢谢!
级别: 新手上路
UID: 16042
精华: 0
发帖: 47
金钱: 245 两
威望: 49 点
综合积分: 94 分
注册时间: 2010-03-13
最后登录: 2012-03-23
3楼  发表于: 2010-10-28 21:23
1、内核是独立的,和GTK+没有必然联系。
2、GTK+是可以移植到嵌入式Linux的
3、已经有人在mini2440上成功移植了GTK+
级别: 新手上路
UID: 26959
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2010-08-17
最后登录: 2012-08-24
4楼  发表于: 2010-10-30 09:20

 回 3楼(gdglacier) 的帖子

明白了,谢谢!
级别: 新手上路
UID: 26959
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2010-08-17
最后登录: 2012-08-24
5楼  发表于: 2010-10-30 22:55

 回 3楼(gdglacier) 的帖子

你好,我还想问问不知道,opencv不知道你知道不知道?因为现在我没有移植gtk+,我想咨询下不知道opencv中的图像显示能不能用framebuffer来显示?谢谢!
级别: 新手上路
UID: 16042
精华: 0
发帖: 47
金钱: 245 两
威望: 49 点
综合积分: 94 分
注册时间: 2010-03-13
最后登录: 2012-03-23
6楼  发表于: 2010-11-02 12:08
可以倒是可以,不过这就代表你要自己实现后端显示函数了。
你要扒扒Opencv的代码,然后找到它调用GTK+ API的那一部分,然后把这部分API用Framebuffer实现,然后把你自己的opencv重新移植到板子上。调试会比较花时间,如果你的重点是在算法上的话有点得不偿失。有这个工夫不如把opencv中的相关算法自己重新写一下,然后直接用Framebuffer输出,里边的算法都有论文索引的,结合源代码看的话多数不算很难。
实在很想用Opencv,推荐你看下这个:
http://www.directfb.org/wiki/index.php/Projects:GTK_on_DirectFB
这个你调通了就能GTK+了
或者你用Opencv处理完图像以后,把结果保存在内存里,然后再memcpy到Framebuffer不也行么?
[ 此帖被gdglacier在2010-11-02 12:16重新编辑 ]