1. 绘图函数
OpenCV的绘图函数可以在任意深度的图像上工作,但大多数情况下,这些绘图函数只对图像的前三个通道有影响。
如果是单通道图像,则默认只影响第一个通道。大多数绘图函数都支持操作对象的颜色、宽度、线型(与指向平滑度有关)和亚像素对齐等参数。
OpenCV对多通道进行色彩渲染时使用了BGR的顺序。
画直线或者其他图形(虚线、圆、矩形等)的函数通常可以接受宽度(thickness)和线型(lineType)的参数。lineType参数的值只能是4,8或者cv::LINE_AA,lineType参数表示直线是4邻域连接或者8邻域连接或者是平滑处理。thickness参数指定线宽的像素数。对于圆、矩形和其他封闭图形,thickness参数可以被设置为cv::FILLED,这时,整个图形会被用边界一样的颜色填充满。
如下所列出的绘图算法中,端点(直线)、中心点(圆)和角点(矩形)等通常都规定为整型值。这些算法都支持使用shift参数进行亚像素对齐。当shift参数有效时,这个值将被用来指定整数参数的小数位数。例如,要画一个圆,设置圆心为(5,5),但是又把shift参数设为1,这样就会得到一个圆心(2.5,2.5)的圆。该参数在平滑处理中比较明显。
函数 | 描述 |
cv::circle | 画一个简单圆 |
cv::clipLine | 判断一条直线是否在给定的矩形内 |
cv::ellipse | 画一个椭圆(可以倾斜,或者只有部分圆弧) |
cv::ellipse2Poly | 计算一个近似椭圆的多边形 |
cv::fillConvexPoly | 画一个填充的简单多边形 |
cv::fillPoly | 画一个填充的任意多边形 |
cv::line | 画一个简单直线 |
cv::rectangle | 画一个简单矩形 |
cv::polyLines | 画多重折线 |
cv::LineIterator | 迭代器类,可以获取线段的像素数 |
2. 文本操作
OpenCV提供的文本绘制函数如下:
函数名称 | 描述 |
cv::putText() | 在图像中绘制指定的文字 |
cv::getTextSize() | 获取一个文字的宽度和高度 |