OpenCV | 直线拟合fitline函数
学习目标:
学习掌握OpenCV的fitline函数
学习内容:
cv::fitLine()的具体调用形式如下:
void cv::fitLine( cv::InputArray points, // 待拟合的直线的集合,必须是矩阵形式;cv::OutputArray line, // 距离类型。fitline为距离最小化函数,拟合直线时,要使输入点到拟合直线的距离和最小化。 int distType, // 距离类型 double param, // 距离参数,跟所选的距离类型有关,值可以设置为0。double reps, // 径向的精度参数 表示直线到原点距离的精度,建议取 0.01。设为0,则自动选用最优值double aeps // 角度精度参数 表示直线角度的精度,建议取 0.01
);
距离类型有以下的类别:
cv2.DIST_USER : User defined distance
cv2.DIST_L1: distance = |x1-x2| + |y1-y2|
cv2.DIST_L2: 欧式距离,此时与最小二乘法相同
cv2.DIST_C:distance = max(|x1-x2|,|y1-y2|)
cv2.DIST_L12:L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1))
cv2.DIST_FAIR:distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998
cv2.DIST_WELSCH: distance = c2/2(1-exp(-(x/c)2)), c = 2.9846
cv2.DIST_HUBER:distance = |x|<c ? x^2/2 : c(|x|-c/2), c=1.345
代码实现:
def fit(x,y,length):points = []for i in range(length):points.append([x[i], y[i]])points = np.array(points)output = cv.fitLine(points, cv.DIST_L2, 0, 0.01, 0.01)#output[0],output[1]是一个方向向量,output[2],output[3]是直线上一个点k = output[1] / output[0]b = output[3] - k * output[2]
OpenCV | 直线拟合fitline函数相关推荐
- OpenCV | 直线拟合fitline函数(Python)
简介 之前做直线拟合时,自己写了一个利用最小二乘做直线拟合的程序,但是由于直线检测的误差比较大,拟合的效果并不好.个人不知道是什么原因,因此想尝试更改一下直线拟合的算法,后来找到了OpenCV中的fi ...
- 【OpenCV3】直线拟合--FitLine()函数详解
一.FitLine()函数原型 CV_EXPORTS_W void fitLine( InputArray points, // 待输入点集(一般为二维数组或vector点集)OutputArray ...
- OpenCV—直线拟合fitLine
本文的主要参考为官方文档OpenCV249-fitLine和博客-OpenCV 学习(直线拟合) 以及<Learning OpenCV 3>page425-426 OpenCV中提供的直线 ...
- 直线拟合fitLine函数的用法
在霍夫检测直线的时候,一条直线会被检测出许多条,可以根据给定的点集拟合出一条直线的情形. void cv::fitLine(cv::InputArray points, // 二维点的数组或vecto ...
- OpenCV 直线拟合及应用
直线拟合顾名思义就是根据多个有限个数的点确定一条直线.依据为: 其中为第i个点到直线的距离,p(d)则为确定最小值的函数.而不同的p(d)对应着不同的直线拟合方法: OpenCV提供了7种(-1为用户 ...
- OpenCV直线拟合检测
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 OpenCV直线拟合检测 霍夫直线检测 ...
- opencv直线拟合cv::fitLine()
通过2D或者2D点集拟合直线 void fitLine( InputArray points, OutputArray line, int distType,double param, double ...
- OpenCV——直线拟合
相比于直线检测,直线拟合的最大特点是将所有数据只拟合出一条直线 void fitLine( InputArray points, OutputArray line, int distType,doub ...
- opencv 直线拟合
一.话说直线拟合 霍夫直线检测容易受到线段形状与噪声的干扰而失真,这个时候我们需要另辟蹊径,通过对图像进行二值分析,提取骨架,对骨架像素点拟合生成直线,这种做法在一些场景下非常有效,而且效果还比较好. ...
最新文章
- TestNG学习随笔
- ipython --pandas
- 第二章例题:DateAndTimeStatus
- CentOS源码下载和Windows平台下解压rpm包
- c语言实战1200例 pdf6,C语言程序设计6.6.2.pdf
- mysql索引技术_MySQL索引类型
- Apache服务配置
- 几行代码理解Python变量访问的LEGB顺序
- python如何使用多线程_Python多线程与多线程中join()的用法
- FlashFXP设置文件传输速度
- MEME:motif分析的综合性工具
- 计算机普通用户禁止修改c盘,win10系统禁止Guest账户访问C盘的设置技巧
- PHP 开发者应了解的 24 个库
- 艾欧尼亚服务器延迟正常吗,lol延迟和服务器位置有关系?为什么我的lol延迟这么高?...
- 【微机原理】8088/8086CPU引脚
- 纸飞机html,纸飞机.html
- linux环境下(SUSE 11)安装ArcSDE 10.0 的注意事项(Oracle 11g)
- 【C#】加加和减减、复合赋值运算符、一元二元运算符、关系运算符、bool类型
- php培训总结如何写,济南php培训学员的学习笔记总结
- c语言文件操作步骤是,文件操作的正确流程,C语言文件操作的函数