OpenCV Rect x和y表示(列,行)或(行,列)

时间:2017-08-23 11:05:59

标签: c++ opencv mat rect

我想用0值替换图像的矩形部分(Mat)。我的图像有1000行数和1500列数。我想在(890,1340)处掩盖宽度为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行

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

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

1 个答案:

答案 0 :(得分:2)

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