功能:画一条线段连接两个点。
函数形式:
void cvLine (
CvArr * img,
CvPoint pt1,
CvPoint pt2,
CvScalar color,
int thickness=1,
int line_type=8,
int shift=0
)
http://www.Sina.com/http://www.Sina.com /
参数列表是一种图像类型的指针,指向单通道或多通道图像。
在RGB颜色模式下,这是一个由红、绿、蓝三个通道组成的完整图像。 他们共同生成了完整的图像。 单通道是图像的灰度,三通道是图像的颜色图表。 )
:线段的起点。
img :线段的终点。
(pt1和pt2都是CvPoint型。 CvPoint是一个简单的数据结构,只包含整数变量x和y。 可以使用CvPoint(intx,int y )函数快速创建CvPoint类型的变量。 这使您可以轻松地将两个整数变量的值指定给cvpoint数据结构。 )
pt1:线条颜色。
CvScalar数据结构,定义如下:
类型定义结构{
双精度val [4];
} cv比例; 该结构是4个双精度浮点变量的集合。 其中,前三个分别表示红、绿、蓝通道; 第四个没有被使用。 一个常见的宏指令是cv_RGB(r,g,b ),该指令使用三个数字作为参数,封装在CvScalar中以创建颜色值。 #definecv_RGB(r,g,b ) CvScalar () ) b,g ) )。
pt2 :线段的粗细(数字越大线段越粗)。
color :线段的类型。 可取8、4、CV_AA三个值,分别表示8相邻连接线、4相邻连接线和抗锯齿连接线。 默认值为8相邻。 CV_AA (采用高斯滤波器)以获得更好的效果。
在(1)附近)数字图像中,附近分为4附近和8附近,4附近是某(x,y )点的上下左右的4点,在8附近加上左上右上左下右下的4点。 如果p在q周围的8点以内,则p位于q的8附近。
2 .相邻:相邻包括附近。 假设p和q相邻,则p和q必须彼此在附近。 而且,这两个像素必须在同一集合内。
3 .在抗锯齿3D图像中,由于分辨率的限制,物体的边缘看起来总是三角形的锯齿。 抗混叠是指柔化图像边缘,使图像边缘更平滑地接近实物物体。
)
thickness :坐标点的小数位数。
line_type :
CV_IMPL void
cvline(cvarr*_img,CvPoint pt1,CvPoint pt2,CvScalar color,
int thickness,int line_type,int shift )
{
cv : matimg=cv :3360 cvarrtomat (img );
cv:3360line(img,pt1,pt2,color,thickness,line_type,shift );
}
shift :
程序源代码(.cpp):
#includecv.h
#includehighgui.h
#definecv_RGB(r,g,b ) cvscalar () ) b ),g ),r ),0 ) ) ) ) ) )。
语音主(语音) )。
{
iplimage * src=cv loadimage (' test.jpg );
cvline(src,cv point (3,3 ),cv point (3,300 ),cv_RGB ) 255,255 ),1,8 ); //绘制线段
cvrectangle(src,cv point (10,10 ),cv point (100,100 ),cv_RGB ) 255,255,255 ),1 ); //绘制矩形
cvcircle(src,cvpoint ) 200,200 ),50,cv_RGB ) 255,255 ),1 ); //画一个圆
cvellipse(src,cvpoint ) 200,200 ),cvsize ) 100,50 ),90,0,360,cv _ RGB 65255,255,255565255 ),1,8; //绘制椭圆
cvnamedwindow(src );
CVShowimage(src )、src;
cvwaitkey(0;
}