OpenCV函数Line、Rectangle绘制直线与矩形详解

前面介绍了opencv在图像中查找直线函数HoughLines,今天讲一下通过opencv的Line函数,在图像中绘制一条我们想要的直线或者线段,以及使用Rectangle函数绘制矩形。学过几何数学我们知道,确定一条直线需要两个点,所以,在绘制直线之前我们需要两个图像坐标,以及绘制直线的颜色。直线颜色我们可以通过opencv提供的CV_RGB函数创建一种颜色,下面一起来学习下吧。

CV_RGB

创建一个色彩值.

 #define CV_RGB( r, g, b )  cvScalar( (b), (g), (r) )

Line

绘制连接两个点的线段

void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,
             int thickness=1, int line_type=8, int shift=0 );
img
图像。
pt1
线段的第一个端点。
pt2
线段的第二个端点。
color
线段的颜色。
thickness
线段的粗细程度。
line_type
线段的类型。

8 (or 0) – 8-connected line(8邻接)连接 线。
4 – 4-connected line(4邻接)连接线。
CV_AA – antialiased 线条。
shift
坐标点的小数点位数。

函数cvLine 在图像中的点1和点2之间画一条线段。线段被图像或感兴趣的矩形(ROI rectangle)所裁剪。对于具有整数坐标的non-antialiasing 线条,使用8-连接或者4-连接Bresenham 算法。画粗线条时结尾是圆形的。画 antialiased 线条使用高斯滤波。要指定线段颜色,用户可以使用使用宏CV_RGB( r, g, b )。

Rectangle

绘制简单、指定粗细或者带填充的 矩形

void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,
                  int thickness=1, int line_type=8, int shift=0 );
img
图像.
pt1
矩形的一个顶点。
pt2
矩形对角线上的另一个顶点
color
线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。
thickness
组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。
line_type
线条的类型。见cvLine的描述
shift
坐标点的小数点位数。

函数 cvRectangle 通过对角线上的两个顶点绘制矩形。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/241761.html

(0)
上一篇 2022年4月7日 01:22
下一篇 2022年4月7日 01:22

相关推荐

发表回复

登录后才能评论