国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

python 用opencv實現霍夫線變換

瀏覽:2日期:2022-07-04 10:00:08

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

python 用opencv實現霍夫線變換

OpenCV中的Hough變換

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

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = 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()

python 用opencv實現霍夫線變換

概率Hough變換

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

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

minLineLength:最小長度的線。比這更短的線段被拒絕了。 maxLineGap:最大限度允許線段之間的間隙把它們當作一條線來對待

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = 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()

python 用opencv實現霍夫線變換

以上就是python 用opencv實現霍夫線變換的詳細內容,更多關于python 實現霍夫線變換的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 竹北市| 千阳县| 蒙山县| 丰顺县| 乐至县| 满城县| 南郑县| 巫山县| 高雄县| 武威市| 广昌县| 乐陵市| 南川市| 神池县| 阿克苏市| 伊川县| 绥中县| 宾川县| 大冶市| 敖汉旗| 富源县| 鱼台县| 廊坊市| 壤塘县| 邓州市| 荃湾区| 苏尼特左旗| 平原县| 新巴尔虎右旗| 自治县| 云和县| 扶绥县| 深圳市| 福泉市| 潮安县| 界首市| 舟曲县| 济阳县| 秦安县| 浪卡子县| 柳江县|