使用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.pswp.cn/news/252313.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252313.shtml
英文地址,請注明出處:http://en.pswp.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,就可以看到效果 修改前 修改后…