在OpenCV中求解兩條直線的交點

2021-08-22 00:02:22 字數 712 閱讀 2042

問題1:給出兩組座標點[x1,y1][x2,y2]確定直線line1?

line1的方程表示為:

分別帶入兩組座標點,因為

萬幸沒有除法(碼農最怕除法)。這就是為什麼不用斜率來表達方程的原因。

問題2:line1與line2的交點?

因為標題也寫出來了在opencv環境下,opencv中有非常好用的矩陣mat資料型別。

line1:

line2:

所以[x,y]座標為:

具體在c++程式設計實踐中,

mat ab_matrix = (mat_(2, 2) << a1,b1,a2,b2);//兩條直線的係數矩陣2*2

mat c_matrix = (mat_(2, 1) << -c1,-c2);//兩條直線的c引數矩陣2*1

mat xy_matrix = (mat_(2, 1));//兩條直線的交點座標矩陣2*1

xy_matrix = ab_matrix.inv()*c_matrix;

問題1中一開始求解直線的方程我並非想要用代數法,覺得能用矩陣標的就用矩陣(opencv中mat資料型別操作還算比較快速的),什麼情況下不能夠用矩陣法求解直線方程?

問題2中求交點座標[x,y],要用到矩陣求逆,這對於程式設計師來說與除法沒什麼區別,所以當行列式等於0,即無法求逆時意味著什麼?

C 判斷兩條直線距離

一般式的意思就是ax by c 0 role presentation ax by c 0ax by c 0如果有兩個直線a1 x b1 y c1 0a2 x b2 y c2 0 role presentation a1x b1y c1 0a2x b2y c2 0a1x b1y c1 0a2x b2...

計算兩條直線的交點 C

ps 從其他地方看到的原始碼是有問題的。下面是修正後的 計算兩條直線的交點 l1的點1座標 l1的點2座標 l2的點1座標 l2的點2座標 public static pointf getintersection pointf linefirststar,pointf linefirstend,po...

求兩條直線(線段)的交點

如圖,如何求得直線 ab 與直線 cd的交點p?以上內容摘自 演算法藝術與資訊學競賽 思路就是利用叉積求得點p分線段dc的比,然後利用高中學習的定比分點座標公式求得分點p的座標。看不懂的可以去複習下 定比分點 的知識。include include include include using nam...