如何访问图像的特定像素(部分)

时间:2014-05-06 21:12:38

标签: c++ image opencv image-processing computer-vision

如何只访问图像特定部分的像素?是否有任何正确的方法来访问它们或我需要使用hit and trial方法。 例如,我想访问圈子中的所有像素( this circle is just draw for understanding)将不会出现真正的问题。

enter image description here

我想只访问这些像素来改变值,一种只是想到的方法是

获取图像的四个角落

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

0 个答案:

没有答案