如何只访问图像特定部分的像素?是否有任何正确的方法来访问它们或我需要使用hit and trial
方法。
例如,我想访问圈子中的所有像素( this circle is just draw for understanding)
将不会出现真正的问题。
我想只访问这些像素来改变值,一种只是想到的方法是
获取图像的四个角落
vector<Point> corners(4);
corners[0] = Point(0, 0);
corners[1] = Point(my_img.width, 0);
corners[2] = Point(0, my_img.height);
corners[3] = Point(my_img.width, my_img.height);
然后找到它的中心
Point center = Point(my_img.size().width/2, my_img.size().height/2);
制作半径
double radius = 2.0;
然后将新值放在radius或circle
中image.at<cv::Vec3b>(row,col)[0] = newval[0]; //B
image.at<cv::Vec3b>(row,col)[1] = newval[1]; //G
image.at<cv::Vec3b>(row,col)[2] = newval[2]; //R
但接下来如何访问其中的像素(需要适用于所有图片的解决方案,不仅适用于此特定图片),还是any other logic or idea is appriciated