欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

使用Python+OpenCV圖像處理實現(xiàn)直線檢測-創(chuàng)新互聯(lián)

這篇文章運用簡單易懂的例子給大家介紹使用Python+OpenCV圖像處理實現(xiàn)直線檢測,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

瀍河網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司

簡介:

1.霍夫變換(Hough Transform) 霍夫變換是圖像處理中從圖像中識別幾何形狀的基本方法之一,應(yīng)用很廣泛,也有很多改進(jìn)算法。主要用來從圖像中分離出具有某種相同特征的幾何形狀(如,直線,圓等)。最基本的霍夫變換是從黑白圖像中檢測直線(線段)。

2.Hough變換的原理是將特定圖形上的點變換到一組參數(shù)空間上,根據(jù)參數(shù)空間點的累計結(jié)果找到一個極大值對應(yīng)的解,那么這個解就對應(yīng)著要尋找的幾何形狀的參數(shù)(比如說直線,那么就會得到直線的斜率k與常熟b,圓就會得到圓心與半徑等等)

3.霍夫線變換是一種用來尋找直線的方法。用霍夫線變換之前, 首先需要對圖像進(jìn)行邊緣檢測的處理,也即霍夫線變換的直接輸入只能是邊緣二值圖像。

4.霍夫直線檢測的具體原理參見:

http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html

代碼如下:

#直線檢測
#使用霍夫直線變換做直線檢測,前提條件:邊緣檢測已經(jīng)完成
import cv2 as cv
import numpy as np

#標(biāo)準(zhǔn)霍夫線變換
def line_detection(image):
  gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)
  edges = cv.Canny(gray, 50, 150, apertureSize=3) #apertureSize參數(shù)默認(rèn)其實就是3
  cv.imshow("edges", edges)
  lines = cv.HoughLines(edges, 1, np.pi/180, 80)
  for line in lines:
    rho, theta = line[0] #line[0]存儲的是點到直線的極徑和極角,其中極角是弧度表示的。
    a = np.cos(theta)  #theta是弧度
    b = np.sin(theta)
    x0 = a * rho  #代表x = r * cos(theta)
    y0 = b * rho  #代表y = r * sin(theta)
    x1 = int(x0 + 1000 * (-b)) #計算直線起點橫坐標(biāo)
    y1 = int(y0 + 1000 * a)  #計算起始起點縱坐標(biāo)
    x2 = int(x0 - 1000 * (-b)) #計算直線終點橫坐標(biāo)
    y2 = int(y0 - 1000 * a)  #計算直線終點縱坐標(biāo)  注:這里的數(shù)值1000給出了畫出的線段長度范圍大小,數(shù)值越小,畫出的線段越短,數(shù)值越大,畫出的線段越長
    cv.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2)  #點的坐標(biāo)必須是元組,不能是列表。
  cv.imshow("image-lines", image)

#統(tǒng)計概率霍夫線變換
def line_detect_possible_demo(image):
  gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)
  edges = cv.Canny(gray, 50, 150, apertureSize=3) # apertureSize參數(shù)默認(rèn)其實就是3
  lines = cv.HoughLinesP(edges, 1, np.pi / 180, 60, minLineLength=60, maxLineGap=5)
  for line in lines:
    x1, y1, x2, y2 = line[0]
    cv.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2)
  cv.imshow("line_detect_possible_demo",image)

src = cv.imread('E:/imageload/louti.jpg')
print(src.shape)
cv.namedWindow('input_image', cv.WINDOW_AUTOSIZE) 
cv.imshow('input_image', src)
line_detection(src)
src = cv.imread('E:/imageload/louti.jpg') #調(diào)用上一個函數(shù)后,會把傳入的src數(shù)組改變,所以調(diào)用下一個函數(shù)時,要重新讀取圖片
line_detect_possible_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

當(dāng)前文章:使用Python+OpenCV圖像處理實現(xiàn)直線檢測-創(chuàng)新互聯(lián)
地址分享:http://chinadenli.net/article4/descoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站制作Google、云服務(wù)器、全網(wǎng)營銷推廣域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)