把以前學習的知識重新整理一下,首先通過opencv霍夫線變換提取影象直線,分別取線上兩點,通過計算線的斜率,從而計算角度。
1、霍夫線變換
opencv支援兩種不同的霍夫變換:標準霍夫變換(sht)和累積概率霍夫變換(ppht)。在opencv中可以使用同乙個函式來使用兩種演算法。
void
houghlinesp
(inputarray image,outputarray lines,
double rho,
double theta,
int threshold,
double minlinelength=0,
double maxlinegap=
0)
image為輸入影象,要求是單通道,8位影象
lines為輸出引數,4個元素表示,即直線的起始和終止端點的4個座標(x1,y1),(x2,y2)
rho為距離解析度,一般為1
heta為角度的解析度,一般cv_pi/180
threshold為閾值,hough變換影象空間值最大點,大於則執行
minlinelength為最小直線長度(畫素),即如果小於該值,則不被認為是一條直線
maxlinegap為直線間隙最大值,如果兩條直線間隙大於該值,則被認為是兩條線段,否則是一條。
也可以通過其他方法去找邊線的點座標,如角點查詢。
2、公式計算
先分別求取線斜率k1,k2,然後帶進公式計算角度。
k =
(k2 - k1)/(
1+ k1*k2)
;angle =
atan
(k)*
180/ pi;
3、**如下
4、結果實現原圖:
結果:
OpenCV輪廓檢測,計算物體旋轉角度
效果還是有點問題的,希望大家共同 一下 findrotation angle.cpp 定義控制台應用程式的入口點。findcontours.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include include inclu...
OpenCV 計算三角形的角度
已知三角形的三個頂點,先計算每條邊的邊長,利用三角形的餘弦定理,使用反三角函式求出每個角的弧度值,再將弧度值轉化為角度值。三角形的餘弦定理 cosa b 2 c 2 a 2 2bc cosb a 2 c 2 b 2 2ac cosc b 2 a 2 c 2 2ab 弧度和角度轉換 角度 弧度 180...
關於角度的計算
transform.tranformdirection vector3 dir 將角度從區域性座標轉換到全域性座標.dir被視為區域性座標的方向 例如 someobject.transform.transfordirection vector3.right 返回的是someobject的右方 乙個方...