【问题标题】:Manipulating specific x,y values of a cv::Mat?操作 cv::Mat 的特定 x,y 值?
【发布时间】:2011-11-10 02:27:00
【问题描述】:

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

但这甚至不会编译..

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    在这种情况下使用at的方式是temp.at&lt;unsigned char&gt;(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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 2022-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      相关资源
      最近更新 更多