OpenCV的绘图函数可以在任意深度的图像上工作,但在大多数情况下,它们只对图像的前三个通道有影响BGR,如果是单通道图像,则默认只影响第一个通道。大多数绘图函数都支持操作对象的颜色、宽度、线型和亚像素对齐等参数。
艺术线条
画直线或者其他图形的函数通常可以接受宽度(thickness)和线型(lineType)的参数。这两个参数都是整型的,lineType参数只能是4、8或cv::LINE_AA,分别代表4邻域连接、8邻域连接和平滑处理。
填充多边形
cv::circle() 绘制圆形
void cv::circle(InputOutputArray img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=LINE_8, int shift=0)
参数:
参数 | img | center | radius | color | thickness | lineType | shift |
---|---|---|---|---|---|---|---|
含义 | 绘制的圆 | 圆心 | 半径 | 颜色 | 线宽 | 线型 | 小数位数 |
cv::clipLine() 判断pt1-pt2的直线是否在矩形范围内,只有完全在矩阵范围外时才返回false
bool cv::clipLine(Size imgSize, Point& pt1, Point& pt2)
bool cv::clipLine(Size2I imgSize, Point& pt1, Point& pt2)
bool cv::clipLine(Rect imgRect, Point& pt1, Point& pt2)
参数:
参数 | imgSize或imgRect | pt1 | pt2 |
---|---|---|---|
含义 | 指定矩阵 | 第一个点的坐标 | 第二个点的坐标 |
注:前两种形式只指定矩形的大小,默认从(0,0)点开始。
cv::ellipse() 绘制椭圆
void cv::ellipse(InputOutputArray img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar& color, int thickness=1, int lineType=LINE_8, int shift=0)
void cv::ellipse(InputOutputArray img, const RotatedRect& box, const Scalar& color, int thickness=1, int lineType=LINE_8)
参数:
参数 | img | center | axes | angl |
---|