成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

opencv python 霍夫線變換

dingda / 1189人閱讀

摘要:比這更短的線段被拒絕了。最大限度允許線段之間的間隙把它們當(dāng)作一條線來對待

Hough Line Transform

霍夫變換是一種檢測任何形狀的流行技術(shù),可以檢測形狀,即使它被破壞或扭曲一點(diǎn)點(diǎn).
一條線可以表示成y = mx + c或參數(shù)形式,像ρ=xcosθ+ysinθ,其中ρ是從原點(diǎn)到直線的垂直距離,θ角是由這條垂線和水平軸以逆時針的方向形成的(這個方向取決于你如何表示坐標(biāo)系統(tǒng),這種表示法在OpenCV中使用)

OpenCV中的Hough變換

cv.HoughLines()
第一個參數(shù),輸入圖像應(yīng)該是一個二值圖像,因此在應(yīng)用hough變換之前應(yīng)用閾值或使用Canny邊緣檢測.
第二和第三個參數(shù)分別是ρ和θ的精度.
第四個參數(shù)是閾值,這意味著它應(yīng)該被視為一條直線.
記住,選票的數(shù)量取決于直線上的點(diǎn)的數(shù)量,所以它表示應(yīng)該檢測到的最小長度.

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread("img.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)

lines = cv2.HoughLines(edges,1,np.pi/180,200)
for line in lines:
    rho,theta = line[0]
    a = np.cos(theta)
    b = np.sin(theta)
    x0 = a*rho
    y0 = b*rho
    x1 = int(x0 + 1000*(-b))
    y1 = int(y0 + 1000*(a))
    x2 = int(x0 - 1000*(-b))
    y2 = int(y0 - 1000*(a))

    cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2)

cv2.imshow("show",img)
cv2.waitKey()

概率Hough變換

在hough轉(zhuǎn)換中,你可以看到,即使對于一個有兩個參數(shù)的線,它也需要大量的計(jì)算.概率Hough變換是我們所見的Hough變換的一個優(yōu)化,它并沒有把所有的要點(diǎn)都考慮進(jìn)去,相反,它只需要一個隨機(jī)子集,對行檢測來說足夠.

cv2.HoughLinesP(image, rho, theta, threshold[, lines[, minLineLength[, maxLineGap]]])

minLineLength:最小長度的線。比這更短的線段被拒絕了。

maxLineGap:最大限度允許線段之間的間隙把它們當(dāng)作一條線來對待

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread("img.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 150, apertureSize=3)
lines = cv2.HoughLinesP(edges, 1, np.pi/180,100, minLineLength=100, maxLineGap=10)
for line in lines:
    x1, y1, x2, y2 = line[0]
    cv2.line(img, (x1, y1), (x2, y2), (0,255,0), 2)

cv2.imshow("show",img)
cv2.waitKey()

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42057.html

相關(guān)文章

  • opencv python Hough圓變換

    摘要:它越小,就會發(fā)現(xiàn)越多的假圓與較大的累加器值相對應(yīng)的圓,將首先返回最小半徑最大半徑 Hough Circle Transform cv2.HoughCircles(image, method, dp, minDist[, circles[, param1[, param2[, minRadius[, maxRadius]]]]]) image:單通道灰度圖像 method: c...

    luckyyulin 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<