使用python从csv文件中读入两列拟合直线

背景:要判断跟踪算法在控制目标物走直线的情况下跟踪的轨迹是否为直线,我保存下来跟踪算法跟踪到的目标的中心点在图像上的像素位置,然后拟合出穿过这些点的直线,然后计算这些点距离直线的平均距离来判断跟踪的精度。(这个是不是要考虑,虽然我们控制让目标物走直线,但是这种控制精度高吗,或者说,他自己走着走着,轨迹会发生偏移,这需要有一个参照物,比如让扫地机沿着地板砖缝隙走)

主要是使用python读取csv数据

def readfile(filename):with open(filename, 'r') as f:   reader = csv.reader(f.readlines()[1:])for line in reader:try:x =  eval(line[1])y =  eval(line[2])x_list.append(x)y_list.append(y)except:pass
x_list = []
y_list = []def func(a, b, x):return a*x + b
def linefitting():xs = np.array(x_list)ys = np.array(y_list)para = np.polyfit(xs, ys, deg = 1)print("拟合的直线方程 y=",np.poly1d(para) )y_fitted = func(para[0],para[1], xs)plt.figureplt.plot(xs, ys, 'ro', label='Original curve')plt.plot(xs, y_fitted, '-b', label = 'Fitted curve')plt.savefig('./trajectory.png')plt.legend()plt.show()return para
def calprecision(para):
#     计算所有的点到直线的距离
# y = a*x + b
# a*x - y + b = 0
# (a/b)*x - (1/b)*y + 1 = 0
# 方案一
#     a = para[0]/para[1]
#     b = -1/para[1]
#     c = 1
#     方案二a = para[0]b = -1c = para[1]print("a:", a)print("b:", b)print("c:", c)
#     ax+by+c = 0sum = 0down_num = cmath.sqrt(a**2 + b**2)
#     print("down_num:", down_num)for i in range(len(x_list)):x = x_list[i]y = y_list[i]dis = abs(a*x + b*y + c)/down_numsum += disprint("总距离",sum)average = sum/len(x_list)print("平均像素距离:",average)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

window document

1 打开一个新窗口 var newDocwindow.open("text/html","replace");var txt"<html><body>Learning about the DOM is FUN!</body></html>";newDoc.document.write(txt);newDoc.close(); //该方法将关闭 open() 方法打开…

‘(‘:illegal token on right side of ‘::‘

背景&#xff1a;想整理升级一下代码&#xff0c;添加了两个类&#xff0c;再一编译代码&#xff0c;出现了好多这样的错误提示“(:illegal token on right side of ::”&#xff0c;我很纳闷这是啥问题&#xff0c;我就使用“注释法”来定位出错的位置&#xff0c;我发现把所有…

mysql-数据库操作

doc界面操作mysql:<br/> 以phpstudy为例 登录数据库&#xff1a;进入phpstudy/mysql/bin下&#xff0c;mysql -u用户名 -p密码 选择数据库&#xff1a;use 数据库名; 设置编码格式&#xff1a;set names gbk; 查看表结构或字段信息&#xff1a;desc 表名; 建立数据库&…

虹软免费人脸识别SDK注册指南

2019独角兽企业重金招聘Python工程师标准>>> 成为开发者三步完成账号的基本注册与认证&#xff1a; STEP1:点击注册虹软AI开放平台右上角注册选项&#xff0c;完成注册流程。 STEP2:首次使用&#xff0c;登录后进入开发者中心&#xff0c;点击账号管理完成企业或者个…

Mybatis使用statementType=STATEMENT实现动态传入表名或字段名

mybatis中使用statementType"STATEMENT"实现动态传入字段名时一直报语句错误&#xff0c;但实际上语句并没有毛病&#xff0c;爬了一天坑才找到问题&#xff0c;记录一下。 整条语句中里所有传入的值都要使用${xxx},不能使用#{xxx}。 <select id"listMap&quo…

C++中的类加多线程代码修炼

背景&#xff1a;现在在做一个目标跟踪的项目&#xff0c;需要实时的从工业相机中获取图像&#xff0c;然后再跟踪图像上的目标物&#xff0c;由于起初为了测试跟踪算法&#xff0c;就把“从相机获取图像”和“跟踪处理”都放在了主线程中&#xff0c;在实际测试时&#xff0c;…

Activity Monitor 闪退 无法进入睡眠

Activity Monitor 闪退 & 无法进入睡眠 情况描述 黑苹果主机突然无法进入睡眠。 考虑到可能是后台程序阻碍了系统正常进入睡眠&#xff0c; 于是想要通过Activity Monitor查看系统的活动情况&#xff0c;然而&#xff0c;Activity Monitor闪退。 重新开机&#xff0c;快速…

hbase中清空整张表的数据

hbase(main):005:0> truncate fr:test Truncating FaceBase table (it may take a while):- Disabling table...- Dropping table...- Creating table...0 row(s) in 14.4220 seconds truncate是disable、drop、create三个动作的自动化集成。转载于:https://www.cnblogs.com…

hibernate树

1. 树实现通过pid进行指向上一层来实现&#xff0c;实体类代码如下 package com.test.model;import java.util.HashSet; import java.util.Set;import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.per…

Sleep() sleep() usleep()

Linux: sleep(n); //停留n秒 usleep(n); //停留n微秒 Windows: Sleep(n); //停留n毫秒

vue的鼠标移入和移出

vue的鼠标移入和移出 需求&#xff08;鼠标到预约二维码显示&#xff0c;预约添加背景色&#xff09; 实现 <!--html部分--> <ul class"person_list"> //五个li标签皆是循环渲染出来的<li class"item" v-for"(n,index) in 5">…

聊聊flink的MemoryPool

为什么80%的码农都做不了架构师&#xff1f;>>> 序 本文主要研究一下flink的MemoryPool MemoryPool flink-runtime_2.11-1.7.2-sources.jar!/org/apache/flink/runtime/memory/MemoryManager.java abstract static class MemoryPool {abstract int getNumberOfAvai…

day4

ti很简单&#xff0c;但是把变量弄错了&#xff0c;写了不到半小时&#xff0c;调了一小时&#xff0c;导致t3功亏一篑。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<vector> …

C++中public protected private的区别

1. 不考虑继承关系时 本类方法使用外部使用private是否protected是否public是是 2. 有继承关系时 子类方法使用外部private否否protected是否public是是 结论&#xff1a;基于以上两个表格可以知道&#xff0c;C中的protected处于private和public中间&#xff0c; protected 既…

表达式求值

表达式求值问题 ①问题描述 表达式是数据运算的基本形式。人们的书写习惯是中缀式&#xff0c;如&#xff1a;1122*(7-4)/3。中缀式的计算按运算符的优先级及括号优先的原则&#xff0c;相同级别从左到右进行计算。表达式还有后缀式&#xff08;如&#xff1a;22 7 4 - * 3 / 1…

PHP_SELF变量解析和重复路径解决

最近升级PHP到PHP7版本&#xff0c;并重新部署了新的Nginx&#xff0c;启动的时候发现了一个问题&#xff0c;全局变量$_SERVER[PHP_SELF]的值发生了改变&#xff0c;从而影响到代码的功能。因此我们来了解下$_SERVER全局变量中的PHP_SELF/PATH_INFO/SCRIPT_NAME等参数以及其关…

pep 8 规范的一些记录

一、pep8起源 龟叔创立Python的初衷里就有创立一个容易阅读的编程语言&#xff0c;所以亲自操刀写了pep8 代码规范&#xff0c;每个项目开始前都要有一个共识&#xff0c;就是自己的代码规范&#xff0c;pep8 就是一个很好的范本。 二、官网链接 https://www.python.org/dev/pe…

C++中的类加多线程代码修炼之二

背景&#xff1a;在上一篇文章中 写到了我第一次使用C使用多个类多个线程进行编程&#xff0c;由于是第一接手“这么大一个工程”&#xff0c;所以还是要有个参照物的&#xff0c;由于我呢之前好几年一直在看的一个C代码工程就是ORB-SLAM了&#xff0c;这个工程使用C语言&#…

Primer c++ 第5版pdf

下载地址&#xff1a;网盘下载 内容简介 这本久负盛名的 C经典教程&#xff0c;时隔八年之久&#xff0c;终迎来史无前例的重大升级。除令全球无数程序员从中受益&#xff0c;甚至为之迷醉的——C 大师 Stanley B. Lippman 的丰富实践经验&#xff0c;C标准委员会原负责…

eclispe修改project Explorer字体大小

切换到Eclipse目录下: D:\JAVA\spring-tool-suite\sts-4.0.2.RELEASE\plugins\org.eclipse.ui.themes_1.2.200.v20180828-1350 找到下面的这个css文件 打开找到下面的位置在下面添加代码:CTabFolder Tree{font-size: 15px;} 复制代码重启Eclipse,就可以看到效果 修改前 修改后…