我想使用此函数在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;
中遇到问题。我不知道怎么会变得更加致命呢?
答案 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;
}