学习目标:

学习掌握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函数相关推荐

  1. OpenCV | 直线拟合fitline函数(Python)

    简介 之前做直线拟合时,自己写了一个利用最小二乘做直线拟合的程序,但是由于直线检测的误差比较大,拟合的效果并不好.个人不知道是什么原因,因此想尝试更改一下直线拟合的算法,后来找到了OpenCV中的fi ...

  2. 【OpenCV3】直线拟合--FitLine()函数详解

    一.FitLine()函数原型 CV_EXPORTS_W void fitLine( InputArray points, // 待输入点集(一般为二维数组或vector点集)OutputArray ...

  3. OpenCV—直线拟合fitLine

    本文的主要参考为官方文档OpenCV249-fitLine和博客-OpenCV 学习(直线拟合) 以及<Learning OpenCV 3>page425-426 OpenCV中提供的直线 ...

  4. 直线拟合fitLine函数的用法

    在霍夫检测直线的时候,一条直线会被检测出许多条,可以根据给定的点集拟合出一条直线的情形. void cv::fitLine(cv::InputArray points, // 二维点的数组或vecto ...

  5. OpenCV 直线拟合及应用

    直线拟合顾名思义就是根据多个有限个数的点确定一条直线.依据为: 其中为第i个点到直线的距离,p(d)则为确定最小值的函数.而不同的p(d)对应着不同的直线拟合方法: OpenCV提供了7种(-1为用户 ...

  6. OpenCV直线拟合检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 OpenCV直线拟合检测 霍夫直线检测 ...

  7. opencv直线拟合cv::fitLine()

    通过2D或者2D点集拟合直线 void fitLine( InputArray points, OutputArray line, int distType,double param, double ...

  8. OpenCV——直线拟合

    相比于直线检测,直线拟合的最大特点是将所有数据只拟合出一条直线 void fitLine( InputArray points, OutputArray line, int distType,doub ...

  9. opencv 直线拟合

    一.话说直线拟合 霍夫直线检测容易受到线段形状与噪声的干扰而失真,这个时候我们需要另辟蹊径,通过对图像进行二值分析,提取骨架,对骨架像素点拟合生成直线,这种做法在一些场景下非常有效,而且效果还比较好. ...

最新文章

  1. TestNG学习随笔
  2. ipython --pandas
  3. 第二章例题:DateAndTimeStatus
  4. CentOS源码下载和Windows平台下解压rpm包
  5. c语言实战1200例 pdf6,C语言程序设计6.6.2.pdf
  6. mysql索引技术_MySQL索引类型
  7. Apache服务配置
  8. 几行代码理解Python变量访问的LEGB顺序
  9. python如何使用多线程_Python多线程与多线程中join()的用法
  10. FlashFXP设置文件传输速度
  11. MEME:motif分析的综合性工具
  12. 计算机普通用户禁止修改c盘,win10系统禁止Guest账户访问C盘的设置技巧
  13. PHP 开发者应了解的 24 个库
  14. 艾欧尼亚服务器延迟正常吗,lol延迟和服务器位置有关系?为什么我的lol延迟这么高?...
  15. 【微机原理】8088/8086CPU引脚
  16. 纸飞机html,纸飞机.html
  17. linux环境下(SUSE 11)安装ArcSDE 10.0 的注意事项(Oracle 11g)
  18. 【C#】加加和减减、复合赋值运算符、一元二元运算符、关系运算符、bool类型
  19. php培训总结如何写,济南php培训学员的学习笔记总结
  20. c语言文件操作步骤是,文件操作的正确流程,C语言文件操作的函数

热门文章

  1. 我的汉字输入法编码方案
  2. windows命令行工具(转)
  3. docker部署finebi 帆软
  4. tasklist 结束进程_windows
  5. 在虚拟机中搭建设zookeeper集群配置
  6. 国人函数概念,稀里糊涂,误人子弟
  7. 为什么选择 GPU 云服务器
  8. Elasticsearch 使用初级入门 【入门篇】
  9. html上下滑动视频代码,h5 实现视频手势上下屏滑动 (类似抖音)
  10. java对象实例化内存布局与访问定位