返回列表 回复 发帖

[求助] 求助: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一直为零,这个问题困扰了我好久,希望各位高手可以帮我看看问题出在哪里,不胜感激%>_<%
还是没有人回复啊,自己顶一下,那位仁兄会的教一下我啊
还是没有人回复啊,自己顶一下,那位仁兄会的教一下我啊
1# cuby

不能直接这样应用。翻转后要拷贝图像才可以。直接复制会出错。
yangkun521316
    你是指怎样拷贝图像啊
google了一下发现还有人遇到与我累似得问题,但是也没有人回答,我重新修改了一下程序,将opencv捕捉到的图像帧扩展成四通道后复制到dataPtr中,显示之后的图像没有问题,而且,我也把用artoolkit摄像头输出的dataPtr输出成txt格式与我自己转换成的dataPtr对比了一下,发现格式是对的BGR在前面,A通道在最后面为零,但是arDetectMarkerLite还是无法检测marker_num一直是零,不知道问题究竟在哪,还请遇到过相似问题的能够告知一下,科研一直就卡在这,二十几天都没有进步了,时间急啊,还望各位能相助啊
你没有将图像格式转换。BGR转BGRA。我的转换后可以。
不会就此没有消息吧,会的大神来教一下啊
我试过将AR的ARUint8*格式转换为IplImage格式貌似可以用,但是openCV的有些函数在AR里面用又有问题,解决不了,烦!!
yangkun521316:
   你的转换了之后可以识别标志啊
8# yangkun521316 还不怎么会用这个论坛,刚发现可以点你的回复的,我想问一下你的从视频里面捕捉一帧可以识别标志啊
10# ltrobin 你是不是跟我一样也在用ARToolkit进行视频里面的标志识别啊,还成功了啊,交流一下啊,我都快被搞死了
8# yangkun521316 我有转换成bgra的了,可标志检测还是0
也遇到了这样的情况~后来发现原因是这样的哈:
artoolkit 的图像数据类型ARUnit8* 是四通道的,而用opencv的摄像头数据采集函数得到的图像是三通道的,而artoolkit识别标识的函数一定要四通道的数据--RBGA. 貌似alpher通道的数据对标识的检测很重要,就算你随便填个A通道的数据,由三通道转换成四通道的图像,显示是没问题,但检测就会检测不到的。所以猜测找个能抓取四通道图像数据的函数就能解决问题~
8# yangkun521316
你好 你能讲讲你是怎么实现的么
我直接用cvtColor(img, rgbaImg, CV_BGR2BGRA);
然后还是不行啊
和楼主一样的情况
返回列表