OpenCV Rect x 和 y 表示 (column,row) 或 (row,column)

OpenCV Rect x and y represent (column,row) or (row,column)

本文关键字:column row 表示 Rect OpenCV      更新时间:2023-10-16

我想用 0 值替换图像 (Mat( 的矩形部分。我的图像有 1000 行数和 1500 列数。我想掩盖宽度为 150 且高度为 100 的补丁 (890,1340(。为此,我使用以下代码片段:

cv::Rect patch;
patch.y = 890;
patch.x = 1340;
patch.height = 100;
patch.width = 150;
image(patch) = 0;

但是我收到以下错误:

OpenCV 错误:输入参数的大小不匹配(该操作既不是"数组操作数组"(其中数组具有相同的大小和相同数量的通道(,也不是"数组操作标量",也不是"标量操作数组"(,文件 C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\arithm.cpp arithm_op,第 659 行

我已经更改了 Rect 补丁的 x 和 y 坐标,但仍然收到相同的错误。我在互联网上搜索,但我仍然对 Rect 参数感到困惑。

矩形 x,y 表示(列,行(还是(行,列(?

Rect

x表示列,y表示行。这意味着 image.at(i,j( 使用 (i,j( 作为 (row,column(,而 Rect(x,y( 使用 (x,y( 作为 (column,row(。