当我使用openCV void Mat :: copyTo(OutputArray m,InputArray mask)函数时,在复制数据之前,使用全零初始化新分配的矩阵.有没有办法用255而不是零初始化?
请参阅OpenCV Doc about Mat
你可以用类似的东西创建Mat
三通道
Mat M(cols,rows, CV_8UC3, Scalar::all(255));
Run Code Online (Sandbox Code Playgroud)
单通道
Mat M(cols,rows, CV_8UC1, Scalar(255));
Run Code Online (Sandbox Code Playgroud)
您只需要在将数据复制到输出矩阵之前分配输出矩阵。您可以创建一个用常量初始化的矩阵,如下所示Mat A(3,3,CV_32F, Scalar(255))。或者,如果您有一个预先声明的 matrix A,您可以使用 重新分配它A.create(3,3,CV_32F),然后使用 使用常量对其进行初始化A = Scalar(255)。
因此,在您的情况下,您可以执行以下操作:
// Create output matrix initialized with a constant
Mat output(rows, cols, CV_8UC3, Scalar(255,255,255));
// Copy your `input` matrix into `output` through your `mask`
input.copyTo(output, mask);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3228 次 |
| 最近记录: |