查看: 3693|回复: 13

osg和opencv结合的问题!!

[复制链接]

该用户从未签到

发表于 2011-10-22 16:58:26 | 显示全部楼层 |阅读模式
最近在做一个项目,需要每帧用opencv获取摄像头采集的图像,然后将图像转换osg纹理,并在osg中显示,我简单的这样写了下:

  1. while( !viewer.done() )
  2. {
  3.   // 获取一帧视频
  4.   pFrame = cvQueryFrame( pCapture );

  5.   // 将pFrame转化为osg纹理

  6.   // 更新纹理

  7.   viewer.frame();
  8. }
复制代码

但是调试的时候发现有时候(并不是每次),程序会死掉,崩溃在threadex.c的_callthreadstartex函数中。。。而且即使正常执行的时候,切换到别的程序,也会发生同样的错误。。。这是为什么呢?

该用户从未签到

发表于 2011-10-24 10:14:54 | 显示全部楼层
// 获取一帧视频
  pFrame = cvQueryFrame( pCapture );

  // 将pFrame转化为osg纹理

  // 更新纹理

请在更新回调中完成这几个步骤

该用户从未签到

 楼主| 发表于 2011-10-24 15:04:55 | 显示全部楼层
回复 2# array
我试了试,但是当切换到另外的程序的时候,还是会发生崩溃,错误指向threadex.c里面的_callthreadstartex函数。。。

该用户从未签到

 楼主| 发表于 2011-10-25 10:02:49 | 显示全部楼层
自己找到问题了,是由于opencv和osg共用了一个缓冲区造成的。。。

该用户从未签到

发表于 2011-10-25 14:50:36 | 显示全部楼层
欢迎分享解决方法~~

该用户从未签到

 楼主| 发表于 2011-10-26 18:33:45 | 显示全部楼层
回复 5# tianxiao888
其实不是这两个库的问题,完全是我自己写程序的时候不够谨慎,因为程序里面需要将Iplimage里面的图像数据转化到osg::image对象中,而在转化函数中犯了个错误,在调用osg::image对象的setimage函数的时候,直接将IplImage对象的data指针赋给了osg::image对象中的图像数据指针,而没有另外申请空间并将数据拷贝进去,这就导致了程序调试过程中opencv和osg共用数据区的混乱情况,有时甚至导致崩溃。。。

该用户从未签到

发表于 2011-10-27 10:10:28 | 显示全部楼层
这样啊,谢谢分享哈~~~~~~~~~~~

该用户从未签到

 楼主| 发表于 2011-10-27 16:25:30 | 显示全部楼层
回复 7# tianxiao888
呵呵,希望能帮到一些有同样问题的朋友、、

该用户从未签到

发表于 2012-12-16 12:52:06 | 显示全部楼层
space3344 发表于 2011-10-26 18:33
回复 5# tianxiao888
其实不是这两个库的问题,完全是我自己写程序的时候不够谨慎,因为程序里面需要将Ip ...

能问一下你这个是怎么转换的么?在调用osg::image对象的setimage函数的时候,直接将IplImage对象的data指针赋给了osg::image对象中的图像数据指针,而没有另外申请空间并将数据拷贝进去

该用户从未签到

发表于 2012-12-17 08:10:17 | 显示全部楼层
setData 长宽高 datatype data 还能怎么转换

该用户从未签到

发表于 2012-12-17 21:52:24 | 显示全部楼层
昨天看了一下 IplImage和osg::Image的指针内容,对应的设置了一下就转换了,谢谢,没怎么看就问了

该用户从未签到

发表于 2014-5-22 19:49:44 | 显示全部楼层
您好,我想问一下能直接用osg截屏所得图像进行处理吗?具体进行图像处理和在osg中显示怎么实现啊?新人求助,您有相关的资料吗?

该用户从未签到

发表于 2014-5-26 15:33:18 | 显示全部楼层
很负责的楼主,顶一个

该用户从未签到

发表于 2016-3-1 16:51:22 | 显示全部楼层
本帖最后由 stonels0 于 2016-3-1 16:52 编辑

楼主,请问在callback中用opencv获得图像,在转化为OSG::image后,渲染不粗来,望指教
我的代码这样的
callback1.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表