C++ OpenCV矩形x和y表示(列、行)或(行、列)

C++ OpenCV矩形x和y表示(列、行)或(行、列),c++,opencv,mat,rect,C++,Opencv,Mat,Rect,我想用0值替换图像(Mat)的矩形部分。我的图像有1000行和1500列。我想在(8901340)处遮罩宽度为150、高度为100的面片。为此,我使用以下代码段: cv::Rect patch; patch.y = 890; patch.x = 1340; patch.height = 100; patch.width = 150; image(patch) = 0; 但我得到了以下错误: OpenCV错误:输入参数的大小不匹配(操作既不是cv::arithm_op文件C:\build\mas

我想用0值替换图像(Mat)的矩形部分。我的图像有1000行和1500列。我想在(8901340)处遮罩宽度为150、高度为100的面片。为此,我使用以下代码段:

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行中的“数组运算数组”(其中数组具有相同的大小和相同的通道数),也不是“数组运算标量”,也不是“标量运算数组”

我已经更改了矩形面片的x和y坐标,但仍然得到相同的错误。我在网上搜索过,但我仍然对Rect参数感到困惑


Rect x,y是表示(列,行)还是(行,列)?

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

x是列,y是行。。。。您应该展示图像是如何创建的,以了解图像(patch.setTo(cv::Scalar(0))的错误;谢谢@Miki,它使用了上面提到的命令。