Я использую opencv 2.4.2 и C++. У меня есть изображение лица. Слева от картины я хочу с наименьшей сложностью определить координату одного угла глаза. Моя программа будет выглядеть следующим образом:Найти координату угла глаза, используя разницу в цвете
входного изображения лица
изображение Сканирование сверху до тех пор, пока не встретит своего рода разницы между цветом кожи и первый белый пиксель в углу глаза
Нарисуйте вид красной точки в этом углу
не продолжать сканирование изображений
Отображение (х, у) координатой в этой точке
То, что я до сих пор:
int main() {
Mat img = imread("MVC-003F.jpg");
for(int i = 0; i < img.rows; i++) {
for(int j = 0; j < img.cols; j++) {
Vec3b color = img.at<Vec3b>(Point(i,j));
if(color.val[0] == 255 && color.val[1] == 255 && color.val[2] == 255)
cout << (Point(i,j)) << endl;
}
}
imshow("out", img);
waitKey(0);
return 0;
}
Очевидно, что это не решает мою проблему, но вместо этого возвращает ошибку. После сканирования изображения я не могу определить, нужно ли мне cvtColor
HSV и порог или продолжить с RGB.
Вот картина того, что я хочу достичь (Красная точка в углу одного глаза):
Если у вас есть некоторые гарантии, что изображения будут определенного типа/качества, есть много патологических и непатологические примеров счётчиков для любого вида простого алгоритма согласования цветов для определения положения глаз. – ldog
изображение лица будет похоже на изображение выше или людей азиатского происхождения – Steph