久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python+OpenCV圖像處理——實(shí)現(xiàn)直線檢測(cè)

瀏覽:9日期:2022-07-07 11:41:08

簡(jiǎn)介:

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

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

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

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

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

代碼如下:

#直線檢測(cè)#使用霍夫直線變換做直線檢測(cè),前提條件:邊緣檢測(cè)已經(jīng)完成import cv2 as cvimport 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)其實(shí)就是3 cv.imshow('edges', edges) lines = cv.HoughLines(edges, 1, np.pi/180, 80) for line in lines: rho, theta = line[0] #line[0]存儲(chǔ)的是點(diǎn)到直線的極徑和極角,其中極角是弧度表示的。 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)) #計(jì)算直線起點(diǎn)橫坐標(biāo) y1 = int(y0 + 1000 * a) #計(jì)算起始起點(diǎn)縱坐標(biāo) x2 = int(x0 - 1000 * (-b)) #計(jì)算直線終點(diǎn)橫坐標(biāo) y2 = int(y0 - 1000 * a) #計(jì)算直線終點(diǎn)縱坐標(biāo) 注:這里的數(shù)值1000給出了畫出的線段長(zhǎng)度范圍大小,數(shù)值越小,畫出的線段越短,數(shù)值越大,畫出的線段越長(zhǎng) cv.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2) #點(diǎn)的坐標(biāo)必須是元組,不能是列表。 cv.imshow('image-lines', image)#統(tǒng)計(jì)概率霍夫線變換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)其實(shí)就是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)用上一個(gè)函數(shù)后,會(huì)把傳入的src數(shù)組改變,所以調(diào)用下一個(gè)函數(shù)時(shí),要重新讀取圖片line_detect_possible_demo(src)cv.waitKey(0)cv.destroyAllWindows()

運(yùn)行結(jié)果:

Python+OpenCV圖像處理——實(shí)現(xiàn)直線檢測(cè)

注意:

1.opencv的HoughLines函數(shù)是標(biāo)準(zhǔn)霍夫線變換函數(shù),該函數(shù)的功能是通過一組參數(shù)對(duì) Python+OpenCV圖像處理——實(shí)現(xiàn)直線檢測(cè) 的集合來表示檢測(cè)到的直線,其函數(shù)原型為:HoughLines(image, rho, theta, threshold[, lines[, srn[, stn[, min_theta[, max_theta]]]]]) -> lines

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 午夜老湿影院 | 精品一区二区久久久久久久网站 | 欧美视频免费在线 | 五月激情六月婷婷 | 亚洲一区二区三区免费 | 亚洲国产精品一区 | 欧美成人性生活视频 | 午夜免费视频 | 一区二区在线免费观看 | 日韩城人网站 | 99国产在线视频 | 视频在线一区二区 | 欧美精品成人一区二区三区四区 | 97精品国产 | 国产成人精品亚洲777人妖 | 在线观看中文字幕 | 久久国产精品一区 | www欧美 | 日韩天堂 | 黑人巨大精品欧美黑白配亚洲 | 中文字幕在线观看一区二区三区 | 99热这里有精品 | 亚洲综合色视频在线观看 | 欧美亚洲视频在线观看 | 亚洲国产精品一区二区三区 | 一级一片免费视频 | 久久精品免费一区二区三区 | 色吊丝2288sds中文字幕 | 久久精品亚洲精品 | 久久久www | 狠狠综合久久av一区二区小说 | 亚洲天堂一区二区 | 一级在线观看视频 | 91精品国产免费 | 国产精品视频一区二区三区 | 四季久久免费一区二区三区四区 | 亚洲伊人久久综合 | 在线观看日韩 | 国产欧美精品一区二区 | 五月婷婷在线观看视频 | 一本久久a久久精品亚洲 |