【发布时间】:2018-01-31 22:35:26
【问题描述】:
我想用 0 值替换图像 (Mat) 的矩形部分。我的图像有 1000 行和 1500 列。我想在 (890,1340) 处遮盖宽度为 150 和高度为 100 的补丁。为此,我使用以下代码 sn-p:
cv::Rect patch;
patch.y = 890;
patch.x = 1340;
patch.height = 100;
patch.width = 150;
image(patch) = 0;
但我收到以下错误:
OpenCV 错误:输入参数的大小不匹配(该操作既不是“数组运算数组”(其中数组具有相同的大小和相同的通道数),也不是“数组运算标量”,也不是“标量运算数组” ') 在 cv::arithm_op,文件 C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\arithm.cpp,第 659 行
我更改了 Rect 补丁的 x 和 y 坐标,但仍然出现相同的错误。我在网上搜索过,但我仍然对 Rect 参数感到困惑。
Rect x,y是代表(column,row)还是(row,column)?
【问题讨论】:
-
x 是列,y 是行....您应该展示如何创建图像以了解错误的含义
-
图像(补丁).setTo(cv::Scalar(0));
-
谢谢@Miki,它使用提到的命令工作。