Я пишу приложение для iPhone, чтобы использовать OpenCV для определения 2D-местоположения в камере iPhone какого-либо предопределенного маркера (только один).Какой тип маркера самый лучший?Круг?Площадь?Цвет?Какой самый быстрый способ обнаружить этот маркер?Кроме того, алгоритм обнаружения должен работать почти в режиме реального времени.
Я пробовал обнаружение круга openCV, но я получил 1 кадр / с (изображение 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]);
}
}
Любой совет или кодбыть полезным.
Заранее спасибо.