OpenCV:更改像素的颜色
-
21-12-2019 - |
题
使用OpenCV,我在检测面部,检测那张面部的左眼和右眼,并将眼睛提取到新的垫子图像中。然后我将眼睛图像颜色从BGR转换为HSV。
我正在检查眼睛颜色是否在某个范围内使用INRANGE()。这显示了红色的眼睛区域(见下文)。
我的问题是:我想改变从红色到黑色的眼睛颜色(使用Inrange())。我不太确定从这里去哪里。
任何帮助都得到了赞赏! 谢谢!
当前结果:
解决方案
如果要使眼睛是蓝色,则可以使用以下循环执行此操作,例如
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;
}
}
. 其他提示
您已经有掩码,只做一个循环,并将像素设置为黑色(.at= vec3b(0,0,0),当然是掩码为255。
不隶属于 StackOverflow