在OpenCV中绘制矩形

时间:2016-10-19 01:02:55

标签: c++ opencv

我想使用此函数在OpenCV中绘制一个矩形:

rectangle(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)

但是当我使用它时,我遇到了一些错误。我的问题是:有人能用一个例子来解释这个功能吗?我找到了一些例子,但有另一个功能:

rectangle(image, pt2, pt1, Scalar(0, 255, 0), 2, 8, 0);

第二个函数的例子:

Rect

我理解这个功能,但是第一个功能我在参数mTmpContainerRect.left = rightPos - width - lp.leftMargin; 中遇到问题。我不知道怎么会变得更加致命呢?

2 个答案:

答案 0 :(得分:8)

接受两个cv::rectangle的{​​{1}}函数同时采用矩形的左上角和右下角(documentation分别为pt1和pt2)。如果该矩形与接受cv::Point的{​​{1}}函数一起使用,那么您将得到相同的结果。

cv::rectangle

答案 1 :(得分:3)

这是在图像上绘制预定义矩形的简单示例

using namespace cv;

int main(){
Mat img=imread("myImage.jpg");

Rect r=Rect(10,20,40,60);
//create a Rect with top-left vertex at (10,20), of width 40 and height 60 pixels.

rectangle(img,r,Scalar(255,0,0),1,8,0);
//draw the rect defined by r with line thickness 1 and Blue color

imwrite("myImageWithRect.jpg",img);


return 0;
}