OpenCV: изменить цвет пикселя

Используя OpenCV, я определяю лицо, определяю левый и правый глаза этого лица и извлекаю глаз в новое изображение циновки. Затем я преобразую цвет изображения глаза из BGR в HSV.

Я проверяю, находится ли цвет глаз в определенном диапазоне, используя inRange (). Это отображает область глаза, которая красная (см. Изображение ниже).

Мой вопрос: я хотел бы изменить цвет глаз (определяется с помощью inRange ()) с красного на черный. Я не слишком уверен, куда идти отсюда.

Любая помощь приветствуется!
Спасибо!


Текущий результат:

0

Решение

Вы можете сделать это с помощью следующего цикла for, если вы хотите сделать глаза голубыми, например

cv::Vec3b pixelColor(255,0,0);
for(int y=0;y<img.rows;y++){
for(int x=0;x<img.cols;x++){
cv::Point2f point(x, y);
if (mask.at<uchar>(point))  image.at<Vec3b>(cv::Point(x,y)) = pixelColor;
}
}
1

Другие решения

У вас уже есть маска, просто выполните цикл for и установите пиксели в черный цвет (.at = Vec3b (0,0,0), в пространстве BGR, конечно), где маска равна 255.

1

По вопросам рекламы [email protected]