
OpenCV2.4.7.0文档翻译:绘图函数,Drawing Functions
绘图函数支持任意位深的矩阵/图片。这些形状的边界处可以以抗锯齿形式来渲染(目前只支持8位图片)。所有的函数都包含一个颜色参数color,这个参数,对于彩色图片是一个RGB值(可使用CV_RGB或 Scalar_ 构造函数来构造),对于灰度图片是一个亮度值。对于彩色图片,颜色通道顺序一般是蓝、绿、红。这是 imshow() 、 imread() 和 imwrite() 所预期的顺序。所以,如果妳想要使用一个Scalar 构造函数来构造一个颜色的话,应当像这样:
Scalar(blue_component,green_component,red_component[,alpha_component])
如果妳采用的是自有的图片渲染及输入/输出函数,那么妳可以使用任意的颜色通道顺序。绘图函数会单独处理每个通道,因此不会受通道顺序的影响,甚至都不会受妳所采用的颜色空间的影响。整张图片可使用 cvtColor() 来从BGR 转换到RGB 或别的颜色空间。
如果某个绘图元素部分或全部位于图片范围之外,则绘图函数会裁剪它。另外,狠多绘图函数都能够处理以子像素(sub-pixel)精度指定的像素坐标。这句话的意思就是,坐标可以是带有固定小数点的数值,只不过被编码为整数了。小数位的数目是由shift 参数指定的,而真正的点坐标是这样计算出来的:Point(x,y) → Point2f(x*2 -shift ,y*2 -shift )。这个特性在渲染抗锯齿的形状时特别高效。
注意
这些函数不支持对4通道的目标图片进行半透明绘制。在这种情况下, color[3]会被直接复制到被重绘的目标像素中。因此,如果妳想要绘制半透明的形状,那么,妳可以在一个单独的缓冲里面绘制它们,然后将那个缓冲区与主图片融合。
注意
•.在这里可找到一个使用各种各样的绘图函数(例如line、rectangle……)的示例 opencv_source_code/samples/cpp/drawing.cpp
填充一个凸多边形。
C++: void fillConvexPoly (Mat& img, const Point* pts, int npts, const Scalar& color, int lineType=8, int shift=0)
Python: cv2.fillConvexPoly (img, points, color[, lineType[, shift]]) → None
C: void cvFillConvexPoly (CvArr* img, const CvPoint* pts, int npts, CvScalar color, int line_type=8, int shift=0 )
Python: cv.FillConvexPoly (img, pn, color, lineType=8, shift=0) → None
|
参数: |
|
fillConvexPoly函数绘制一个被填充的凸多边形。这个函数比 fillPoly 快得多。它不仅仅可以填充凸多边形,还可以填充不与自身相交的单调多边形(即,这种多边形的轮廓与任何水平线(扫描线)最多有2个交点(当然,它的最顶上那条边和/或最底部那条边可以是水平的))。
校长:开房找我 放过小学生! 联系电话
HxLauncher: Launch Android applications by voice commands