修改cv :: Mat对象的直接x,y位置的最简单方法是什么?我有一个名为'temp'的cv :: Mat,里面有一个图像,如果我想逐个将每个像素变成粉红色怎么办?
我尝试了以下方法:
for (int i = 0; i < temp.size().width; i++)
{
for (int j = 0; j < temp.size().height; j++)
{
temp.at(cv::Point(i, j)) = 255;
cv::waitKey();
}
}
但这甚至不会编译..
答案 0 :(得分:0)
在这种情况下使用的方式是temp.at<unsigned char>(i, j).
这是一个例子:
Mat H(100, 100, CV_64F);
for(int i = 0; i < H.rows; i++)
for(int j = 0; j < H.cols; j++)
H.at<double>(i,j)=1./(i+j+1);
有关完整说明,请查看此处:http://opencv.itseez.com/modules/core/doc/basic_structures.html#mat-at