opencv 中retangle函数源码
时间: 2024-05-02 11:18:48 浏览: 56
以下是 OpenCV 中 rectangle 函数的源代码:
```
CV_EXPORTS_W void rectangle(InputOutputArray img, Point pt1, Point pt2,
const Scalar& color, int thickness = 1,
int lineType = LINE_8, int shift = 0)
{
CV_INSTRUMENT_REGION()
CV_Assert(thickness >= -1 && thickness <= 255);
Point tl, br;
tl.x = std::min(pt1.x, pt2.x);
tl.y = std::min(pt1.y, pt2.y);
br.x = std::max(pt1.x, pt2.x);
br.y = std::max(pt1.y, pt2.y);
Rect r(tl, br);
Mat _img = img.getMat();
if( _img.type() == CV_8UC1 || _img.type() == CV_8UC3 )
{
line( _img, tl, Point(br.x, tl.y), color, thickness, lineType, shift);
line( _img, Point(br.x, tl.y), br, color, thickness, lineType, shift);
line( _img, br, Point(tl.x, br.y), color, thickness, lineType, shift);
line( _img, Point(tl.x, br.y), tl, color, thickness, lineType, shift);
}
else
{
rectangle(_img, r, color, thickness, lineType, shift);
}
}
```
该函数的作用是在图像上绘制矩形。输入参数包括图像(输入输出数组)、矩形的两个顶点坐标、颜色、线条粗细、线条类型和线条偏移量。函数首先计算出矩形的左上角和右下角坐标,然后根据图像类型调用不同的矩形绘制函数。如果图像类型是 CV_8UC1 或 CV_8UC3,表示是灰度图像或 RGB 彩色图像,会调用四次线段绘制函数绘制矩形的四个边框;否则会调用 OpenCV 提供的矩形绘制函数,绘制一个矩形。
阅读全文