OpenCV里的线型 | 您所在的位置:网站首页 › circle的意思是啥 › OpenCV里的线型 |
转载:https://zhidao.baidu.com/question/427970238676959132.html 首先说明一点:这个linetype参数并不是指线型是实线、虚线还是点画线,这个参数实际用途是改变线的产生算法。什么意思?以函数line()为例,官方的说明文档里lineType参数说明如下: 1 Line(CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 ) 1 2 3 4 5 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 四连通与八连通概念 参考:https://blog.csdn.net/diligentkong/article/details/77991671 |
CopyRight 2018-2019 实验室设备网 版权所有 |