利用opencv中的canny邊緣檢測基於houghlinesp檢測出來的直線,在適當的場景下需要延長檢測出來的直線(**提取)
原理就是中學學的直線方程的的應用.
def extend_line(x1, y1, x2, y2, x, y, flag):
if flag == 1:
if y1 == y2:
return 0, y1, x, y2
else:
k = (y2 - y1) / (x2 - x1)
b = (x1*y2-x2*y1)/(x1-x2)
x3 = 0
y3 = b
x4 = x
y4 = int(k * x4+b)
return x3, y3, x4, y4
else:
if x1 == x2:
return x1, 0, x2, y
else:
k = (y2 - y1) / (x2 - x1)
b = (x1 * y2 - x2 * y1) / (x1 - x2)
y3 = 0
x3 = int(-1*b/k)
y4 = y
x4 = int((y4-b)/k)
return x3, y3, x4, y4
Python OpenCV Hough直線檢測
1.笛卡爾座標系與hough座標系 為了方便說明,我們先以笛卡爾座標系即直角座標系 與笛卡爾空間對應 為例來說明hough變換的基本原理。與笛卡爾座標系對應,我們構造乙個hough座標系 對應hough空間 在hough座標系中,橫座標採用笛卡爾座標系中直線的斜率k,縱座標使用笛卡爾座標系中直線的截...
OpenCV Python系列之哈里斯角檢測
我們在上次簡述了opencv的特徵基礎原理,本次我們將步入實戰部分,開始進行特徵的初階檢測。原理 在上乙個教程中,我們知道了角點是影象中向任意方向發生改變時,都引起影象強烈變動的區域。chris harris 和 mike stephens 在他們1988年的 a combined corner a...
opencv學習筆記(六)霍夫直線檢測和圓檢測
1.霍夫變換直線檢測和圓檢測 霍夫變換是一種從空間域到極座標域的轉換。已知二維空間的一條直線有很多表現方式,例如截距式斜率式比如 y kx b,一旦我們知道k和b,就知道了這條直線,而k和b在座標上表示的只是乙個點而已,如果直線的k相同也就是直線平行,那麼表現在kb座標域也就是條k直線。那麼問題在於...