【发布时间】:2011-07-10 11:10:16
【问题描述】:
我有两种算法可以检测 AR 标记(ARToolKit 和 Infi)。我让他们在 iPhone 上实时检测标记。在这个阶段,我想比较它们的速度和准确性。我想准备一系列图像并测试它们的识别。 我可以用 infi 做到这一点,但我无法设法将 ARToolKit 与 UIImage 一起使用。
ARToolKit 使用 CVImageBuffer 来识别标记:
- (Marker *)detectMarkerInImageBuffer:(CVImageBufferRef)imageBuffer {
/*We lock the buffer and get the address of the first pixel*/
CVPixelBufferLockBaseAddress(imageBuffer,0);
unsigned char *baseAddress = (unsigned char *) CVPixelBufferGetBaseAddress(imageBuffer);
tracker->calc(baseAddress);
如何使用/转换 UIImage 来实现 baseAddress,以便将其发送到 tracker->calc ?
使用 infi 我首先从缓冲区创建 IplImage 或将 UIImage 转换为 IplImage,然后在这两种情况下:
Buffer* buffer = new Buffer();
buffer->setBuffer( (unsigned char *) iplImg->imageData, iplImg->width, iplImg->height);
【问题讨论】:
标签: iphone opencv uiimage augmented-reality buffering