如何将OpenCV Mat的所有像素设置为特定值?

Dre*_*kes 19 c++ opencv matrix

我有一个类型的图像CV_8UC1.如何将所有像素值设置为特定值?

her*_*tao 52


PS:如果您还想知道如何在不改变其他通道的情况下有效地将a的给定通道设置为给定值,请查看此主题cv::Mat.


Dre*_*kes 8

cv::Mat已实现赋值运算符以允许赋值cv::Scalar如下:

// Create a greyscale image
cv::Mat mat(cv::Size(cols, rows), CV_8UC1);

// Set all pixel values to 123
mat = cv::Scalar:all(123);
Run Code Online (Sandbox Code Playgroud)

文档描述:

Mat&Mat :: operator =(const Scalar&s)

s - 为每个矩阵元素分配的标量.矩阵大小或类型不会更改.

  • 因为Scalar(123)只初始化Scalar的*1st*元素,所以如果Mat有多个通道,你可能需要Scalar :: all(123). (4认同)

Har*_*ris 5

以另一种方式,您可以使用

垫::设置为

喜欢

      Mat src(480,640,CV_8UC1);
      src.setTo(123); //assign 123
Run Code Online (Sandbox Code Playgroud)