操纵cv :: Mat的特定x,y值?

时间:2011-11-10 02:27:00

标签: c++ opencv

修改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();
    }
}

但这甚至不会编译..

1 个答案:

答案 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