Board logo

标题: [求助] 求助:IplImage转ARUint8*出现问题 求助:IplImage转ARUint8*出现问题 [打印本页]

作者: cuby    时间: 2012-4-19 11:10     标题: 求助:IplImage转ARUint8*出现问题 求助:IplImage转ARUint8*出现问题

小弟新手,打算将opencv从视频中捕捉的一帧IplImage格式的图像转换为ARUint8*格式的,然后用ARToolkit进行标记检测,采用方法如下(pFrame为视频中捕捉到的一帧):

cvFlip(pFrame,pyr,0);           //翻转图像
        dataPtr=(unsigned char*)pyr->imageData;
但是在后面用arDetectMarkerLite(dataPtr,thresh,&marker_info,&marker_num)进行标记检测的时候发现没有检测出一个标记,marker_num一直为零,这个问题困扰了我好久,希望各位高手可以帮我看看问题出在哪里,不胜感激%>_<%
作者: cuby    时间: 2012-4-19 20:43

还是没有人回复啊,自己顶一下,那位仁兄会的教一下我啊
作者: cuby    时间: 2012-4-19 20:43

还是没有人回复啊,自己顶一下,那位仁兄会的教一下我啊
作者: yangkun521316    时间: 2012-4-20 10:55

1# cuby

不能直接这样应用。翻转后要拷贝图像才可以。直接复制会出错。
作者: cuby    时间: 2012-4-21 21:24

yangkun521316
    你是指怎样拷贝图像啊
作者: cuby    时间: 2012-4-25 20:20

google了一下发现还有人遇到与我累似得问题,但是也没有人回答,我重新修改了一下程序,将opencv捕捉到的图像帧扩展成四通道后复制到dataPtr中,显示之后的图像没有问题,而且,我也把用artoolkit摄像头输出的dataPtr输出成txt格式与我自己转换成的dataPtr对比了一下,发现格式是对的BGR在前面,A通道在最后面为零,但是arDetectMarkerLite还是无法检测marker_num一直是零,不知道问题究竟在哪,还请遇到过相似问题的能够告知一下,科研一直就卡在这,二十几天都没有进步了,时间急啊,还望各位能相助啊
作者: yangkun521316    时间: 2012-4-27 17:44

你没有将图像格式转换。BGR转BGRA。我的转换后可以。
作者: cuby    时间: 2012-4-28 16:08

不会就此没有消息吧,会的大神来教一下啊
作者: ltrobin    时间: 2012-5-4 10:22

我试过将AR的ARUint8*格式转换为IplImage格式貌似可以用,但是openCV的有些函数在AR里面用又有问题,解决不了,烦!!
作者: cuby    时间: 2012-5-8 17:14

yangkun521316:
   你的转换了之后可以识别标志啊
作者: cuby    时间: 2012-5-8 17:16

8# yangkun521316 还不怎么会用这个论坛,刚发现可以点你的回复的,我想问一下你的从视频里面捕捉一帧可以识别标志啊
作者: cuby    时间: 2012-5-8 17:17

10# ltrobin 你是不是跟我一样也在用ARToolkit进行视频里面的标志识别啊,还成功了啊,交流一下啊,我都快被搞死了
作者: cuby    时间: 2012-5-8 17:26

8# yangkun521316 我有转换成bgra的了,可标志检测还是0
作者: 佳罗Q    时间: 2012-6-15 20:35

也遇到了这样的情况~后来发现原因是这样的哈:
artoolkit 的图像数据类型ARUnit8* 是四通道的,而用opencv的摄像头数据采集函数得到的图像是三通道的,而artoolkit识别标识的函数一定要四通道的数据--RBGA. 貌似alpher通道的数据对标识的检测很重要,就算你随便填个A通道的数据,由三通道转换成四通道的图像,显示是没问题,但检测就会检测不到的。所以猜测找个能抓取四通道图像数据的函数就能解决问题~
作者: liyus    时间: 2012-6-26 20:58

8# yangkun521316
你好 你能讲讲你是怎么实现的么
我直接用cvtColor(img, rgbaImg, CV_BGR2BGRA);
然后还是不行啊
和楼主一样的情况
作者: toreal    时间: 2012-8-20 19:34

是否有run

arParamChangeSize( &wparam, xsize, ysize, &cparam );
arInitCparam( &cparam );


呢?

image size 是定義在arInitCparam 中static 的變數
ARUint8 只是image data
如果沒有size ,將不知如何解讀

祝好運
作者: gunny_pong    时间: 2014-5-13 15:05

6# cuby
作者: gunny_pong    时间: 2014-5-13 15:09

google了一下发现还有人遇到与我累似得问题,但是也没有人回答,我重新修改了一下程序,将opencv捕捉到的图像帧扩展成四通道后复制到dataPtr中,显示之后的图像没有问题,而且,我也把用artoolkit摄像头输出的dataPt ...
cuby 发表于 2012-4-25 20:20

我最近也在研究这个,将

IplImage格式图像转成ARUint8* ,图像无法显示,你能说下你怎么转化的吗?


作者: gunny_pong    时间: 2014-5-15 10:52

6# cuby 我转化后图像无法显示,你能说下你怎么转化的吗?谢谢
作者: gunny_pong    时间: 2014-5-16 15:14

6# cuby IplImage图像转化为ARUint8 *格式图像帧,如何显示出来,我的问题现在只需要显示图像,而不需要检测标识物,能分享下你转化的代码吗?我也在这里卡住了。。。




欢迎光临 ARToolKit中文论坛 (http://www.artoolkit.net/) Powered by Discuz! 7.0.0