iphone - 用OpenCV检测的最佳标记类型是什么?如何在iPhone上实时找到2D位置?

我正在编写一个iPhone应用程序,以使用OpenCV来检测iPhone相机中某种预定义标记(仅一个)的2D位置。最好的标记类型是什么?圈?广场?颜色?检测该标记的最快方法是什么?另外,检测算法需要接近实时运行。

我已经尝试过openCV的圆圈检测,但是得到了1 fps(640x480图像):

Mat gray;
vector<Vec3f> circles;

CGPoint findLargestCircle(IplImage *image) {
    Mat img(image);
    cvtColor(img, gray, CV_BGR2GRAY);
    // smooth it, otherwise a lot of false circles may be detected
    GaussianBlur( gray, gray, cv::Size(9, 9), 2, 2 );
    HoughCircles(gray, circles, CV_HOUGH_GRADIENT,
                             2, gray.rows/4, 200, 100 );
    double radius=-1;
    size_t ind;
    for( size_t i = 0; i < circles.size(); i++ ) {
        if(circles[i][2] > radius) {
            radius = circles[i][2];
            ind = i;
        }
    }
    if(ind == -1) {
        return CGPointMake(0, 0);
    }else {
        return CGPointMake(circles[ind][0], circles[ind][1]);
    }
}

任何建议或代码都会有所帮助。

提前致谢。

最佳答案

也许您可以尝试一些特定的彩色标记,然后再考虑颜色过滤。另外,具有特定定向纹理的对象也是一个不错的选择。

https://stackoverflow.com/questions/5335958/

相关文章:

xcode - 在XCode4中的OpenCV中设置项目

objective-c - opencv 2.2 xcode4 ios4.3

opencv - 构建OpenCV 2.2 HTML文档

opencv - 碰撞检测-Goblin XNA

opencv - 为什么 “train data must be floating-point ma

opencv - OpenCV:1列8UC3类型的矩阵与3列8UC1类型的矩阵之间的差异

visual-studio-2010 - 在OpenCV视频捕获上使用cvLine

image-processing - OpenCV中检测到的轮廓数量不匹配

iphone - opencv2中没有这样的文件或目录

qt - Windows 7的OpenCV 2.2