首页 > 其他分享 >33、直线拟合

33、直线拟合

时间:2023-04-11 15:11:53浏览次数:35  
标签:直线 33 double 0.01 fitLine 参数 拟合

OpenCV 4中提供了利用最小二乘M-estimator方法拟合直线的fitLine()函数,该函数的函数原型在代码清单7-7中给出。

代码清单7-7 fitLine()函数原型
1.    void cv::fitLine(InputArray  points,
2.                        OutputArray  line,
3.                        int  distType,
4.                        double  param,
5.                        double  reps,
6.                        double  aeps 
7.                        )
  • points:输入待拟合直线的2D或者3D点集。
  • line:输出描述直线的参数,2D点集描述参数为Vec4f类型,3D点集描述参数为Vec6f类型。
  • distType:M-estimator算法使用的距离类型标志,可以选择的距离类型在表7-1中给出。
  • param:某些类型距离的数值参数(C)。如果数值为0,则自动选择最佳值。
  • reps:坐标原点与直线之间的距离精度,数值0表示选择自适应参数,一般常选择0.01。
  • aeps:直线角度精度,数值0表示选择自适应参数,一般常选择0.01。

代码清单7-8 myFitLine.cpp直线拟合
1.    #include <opencv2\opencv.hpp>
2.    #include <iostream>
3.    #include <vector>
4.    
5.    using namespace cv;
6.    using namespace std;
7.    
8.    int main()
9.    {
10.        system("color F0");  //更改输出界面颜色
11.        Vec4f lines;  //存放你和后的直线
12.        vector<Point2f> point;  //待检测是否存在直线的所有点
13.        const static float Points[20][2] = {
14.            { 0.0f,   0.0f },{ 10.0f,  11.0f },{ 21.0f,  20.0f },{ 30.0f,  30.0f },
15.            { 40.0f,  42.0f },{ 50.0f,  50.0f },{ 60.0f,  60.0f },{ 70.0f,  70.0f },
16.            { 80.0f,  80.0f },{ 90.0f,  92.0f },{ 100.0f, 100.0f },{ 110.0f, 110.0f },
17.            { 120.0f, 120.0f },{ 136.0f, 130.0f },{ 138.0f, 140.0f },{ 150.0f, 150.0f },
18.            { 160.0f, 163.0f },{ 175.0f, 170.0f },{ 181.0f, 180.0f },{ 200.0f, 190.0f }
19.        };
20.        //将所有点存放在vector中,用于输入函数中
21.        for (int i = 0; i < 20; i++)
22.        {
23.            point.push_back(Point2f(Points[i][0], Points[i][1]));
24.        }
25.        //参数设置
26.        double param = 0;  //距离模型中的数值参数C
27.        double reps = 0.01;  //坐标原点与直线之间的距离精度
28.        double aeps = 0.01;  //角度精度
29.        fitLine(point, lines, DIST_L1, 0, 0.01, 0.01);
30.        double k = lines[1] / lines[0];  //直线斜率
31.        cout << "直线斜率:" << k << endl;
32.        cout << "直线上一点坐标x:" << lines[2] << ", y::" << lines[3] << endl;
33.        cout << "直线解析式:y=" << k << "(x-" << lines[2] << ")+" << lines[3] << endl;
34.        return 0;
35.    }

 

标签:直线,33,double,0.01,fitLine,参数,拟合
From: https://www.cnblogs.com/okmai77xue/p/17306295.html

相关文章

  • 【剑指 Offer】 33. 二叉搜索树的后序遍历序列
    【题目】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:    5   /\  2  6 /\ 1  3示例1:输入:[1,6,3,2,5]输出:false示例2:输入:......
  • 直线光栅化-Bresenham算法
    直线光栅化-Bresenham算法Bresenham算法对于两个顶点\(P_{1}(x_{1},y_{1})\)和\(P_{2}(x_{2},y_{2})\)满足\(\Deltax=x_{2}-x_{1}>0\)且\(\Deltay=y_{2}-y_{1}>0\)。设两点确定的直线方程的斜率为\(k=\frac{\Deltay}{\Deltax}\)。当\(0<k<1\)时,从\(x\)轴开始......
  • hdu-4533(线段树+区间合并)
    约会安排HDU-4553跟hdu-1540(线段树+区间合并)-魏老6-博客园(cnblogs.com)是一样,但是要写两个线段树。线段树维护,最长前缀pre,最长后缀suf,以及最大连续连续区间sum。1代表空,0代表时间被占了还有几个注意事项:当是DS时,只能查询和修改屌丝树;当是NS时,先判断屌丝树能不......
  • 3500/15 133292-01 到达时间预测解决方案阶段
    3500/15133292-01到达时间预测解决方案阶段今天,墨西哥的公共交通系统不具有提供信息来确定公共汽车的到达时间或者知道到达用户的公共汽车站的下一辆公共汽车上是否有空位的功能。这一信息与墨西哥城市密切相关,那里每天都有数百万用户需要移动。所提出的解决方案基于这样的事实......
  • 【 2023 】近期一些编译调试开发 Android7&9 系统的笔记( h616 / imx8m / rk3399 )
    主要就记录一下自己食用过程中遇到的一些问题吧,板子有新有旧,但都差不多。待整理呢。https://stackoverflow.com/questions/67363030/rebuild-android-code-with-error-ssl-error-when-connecting-to-the-jack-server-thttps://note.qidong.name/2017/07/disable-jack-server/......
  • ESP32使用433模块通讯
    发送端,25pin#include<Arduino.h>#include<WiFi.h>#include<RCSwitch.h>#defineTXD225RCSwitchmySwitch=RCSwitch();voidsetup(){Serial.begin(115200);mySwitch.enableTransmit(TXD2);//Optionalsetprotocol(default......
  • 剑指 Offer 33. 二叉搜索树的后序遍历序列
    题目链接:剑指Offer33.二叉搜索树的后序遍历序列方法:分治解题思路首先假设该序列能够构成某个二叉搜索树的后序遍历序列,那么这个序列会被分成3个部分:左子树序列,右子树序列,父节点,其中左右子树节点数可能为0;现在就可以检查该序列是否符合这个规律,然后递归的判断子树是否符合......
  • misc | 解决windows cmd不能正确显示\033彩色字符
    misc|解决windowscmd不能正确显示\033彩色字符今天重装winpwn结果显示的是乱码,很影响,搜了一下发现可以安装一个工具来解决。参考:https://www.cnblogs.com/naiij/p/9772584.html工具:https://github.com/adoxa/ansicon/releases......
  • COMP3311 PostgreSQL 数据库写法
    COMP331123T1Assignment2Python,PostgreSQL,psycopg2DatabaseSystemsLastupdated:Thursday6thApril9:06amMostrecentchangesareshowninred...olderchangesareshowninbrown.[AssignmentSpec][DatabaseDesign][Examples][Testing][Submitting][F......
  • poj-3367(线段树+区间合并)
    HotelPOJ-3667思路:与hdu-1540(线段树+区间合并)-魏老6-博客园(cnblogs.com)类似,只不过是区间修改,多维护一个最大连续区间sum。#define_CRT_SECURE_NO_WARNINGS1#include<algorithm>#include<fstream>#include<iostream>#include<cstdio>#include<deque>#includ......