首先说明一点:这个linetype参数并不是指线型是实线、虚线还是点画线,这个参数实际用途是改变线的产生算法。什么意思?以函数line()为例,官方的说明文档里lineType参数说明如下:
Line(CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
lineType –
Type of the line:
8 (or omitted) - 8-connected line.
4 - 4-connected line.
CV_AA - antialiased line.
lineType=8指的是8联通线型,这里涉及到线的产生算法,因为分辨率的关系,直线使用光栅的形式表示的,如图:
这其实就是就是8联通线(8-connected),即下一个点连接上一个点的边或角,对比一下4-connected算法(也叫Bresenham直线算法)会更好理解,如图:
4联通的简单叙述就是:下一个点和上一个点边相连(没有角了),这样就消除了8联通法线断裂的瑕疵,可以说是一种更好的方式。至于为什么选择8,可能是因为算法上更简单。有兴趣可以参考这个:
http://stackoverflow.com/questions/13542925/line-rasterization-4-connected-bresenham
和这个:
https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm#Simplification
P.S:在百度知道像我这个认真答题的真的不多了,忘采纳!