亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

OpenCV實(shí)現(xiàn)直線檢測(cè)

 更新時(shí)間:2022年08月01日 11:47:07   作者:Robin?Long?2018  
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)直線檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了OpenCV實(shí)現(xiàn)直線檢測(cè)的具體代碼,供大家參考,具體內(nèi)容如下

1 介紹

本文主要介紹OpenCV自帶的直線檢測(cè)函數(shù)HoughLines()的用法,這個(gè)函數(shù)的第一個(gè)參數(shù)是一個(gè)二值化圖像,所以在進(jìn)行霍夫變換之前要首先進(jìn)行二值化,或者進(jìn)行Canny 邊緣檢測(cè)。第二和第三個(gè)值分別代表β 和 θ 的精確度。第四個(gè)參數(shù)是閾值,只有累加其中的值高于閾值時(shí)才被認(rèn)為是一條直線,也可以把它看成能檢測(cè)到的直線的最短長(zhǎng)度(以像素點(diǎn)為單位)。返回值就是(β; θ)。β 的單位是像素,θ的單位是弧度。

2 代碼 

#直線檢測(cè)
#使用霍夫直線變換做直線檢測(cè),前提條件:邊緣檢測(cè)已經(jīng)完成
import cv2 as cv
import numpy as np
import matplotlib.pylab as plt
?
#標(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(r'..\edge.jpg')
print(src.shape)
cv.namedWindow('input_image', cv.WINDOW_AUTOSIZE)
cv.imshow('input_image', src)
line_detection(src)
src = cv.imread(r'..\edge.jpg') #調(diào)用上一個(gè)函數(shù)后,會(huì)把傳入的src數(shù)組改變,所以調(diào)用下一個(gè)函數(shù)時(shí),要重新讀取圖片
line_detect_possible_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

3 效果 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python連接es之es更新操作示例詳解

    Python連接es之es更新操作示例詳解

    這篇文章主要為大家介紹了Python連接es之es更新操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • OpenCV里的imshow()和Matplotlib.pyplot的imshow()的實(shí)現(xiàn)

    OpenCV里的imshow()和Matplotlib.pyplot的imshow()的實(shí)現(xiàn)

    這篇文章主要介紹了OpenCV里的imshow()和Matplotlib.pyplot的imshow()的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python的Tqdm模塊實(shí)現(xiàn)進(jìn)度條配置

    Python的Tqdm模塊實(shí)現(xiàn)進(jìn)度條配置

    這篇文章主要介紹了Python的Tqdm模塊實(shí)現(xiàn)進(jìn)度條配置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • wxPython窗體拆分布局基礎(chǔ)組件

    wxPython窗體拆分布局基礎(chǔ)組件

    這篇文章主要為大家詳細(xì)介紹了wxPython窗體拆分布局基礎(chǔ)組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • 解決Jupyter NoteBook輸出的圖表太小看不清問(wèn)題

    解決Jupyter NoteBook輸出的圖表太小看不清問(wèn)題

    這篇文章主要介紹了解決Jupyter NoteBook輸出的圖表太小看不清問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • OpenCV實(shí)現(xiàn)從灰度圖像切出Mask前景區(qū)域

    OpenCV實(shí)現(xiàn)從灰度圖像切出Mask前景區(qū)域

    本文主要介紹了如何利用OpenCV實(shí)現(xiàn)從灰度圖像,根據(jù)閾值,切出多個(gè)前景區(qū)域,過(guò)濾面積太小的圖像。文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-06-06
  • 基于python實(shí)現(xiàn)檢索標(biāo)記敏感詞并輸出

    基于python實(shí)現(xiàn)檢索標(biāo)記敏感詞并輸出

    這篇文章主要介紹了基于python實(shí)現(xiàn)檢索敏感詞并輸出,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 深入解析Python中BeautifulSoup4的基礎(chǔ)知識(shí)與實(shí)戰(zhàn)應(yīng)用

    深入解析Python中BeautifulSoup4的基礎(chǔ)知識(shí)與實(shí)戰(zhàn)應(yīng)用

    BeautifulSoup4正是一款功能強(qiáng)大的解析器,能夠輕松解析HTML和XML文檔,本文將介紹BeautifulSoup4的基礎(chǔ)知識(shí),并通過(guò)實(shí)際代碼示例進(jìn)行演示,感興趣的可以了解下
    2024-02-02
  • Python中isnumeric()方法的使用簡(jiǎn)介

    Python中isnumeric()方法的使用簡(jiǎn)介

    這篇文章主要介紹了Python中isnumeric()方法的使用,isnumeric()方法的使用是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Anaconda下Python中h5py與netCDF4模塊下載與安裝的教程詳解

    Anaconda下Python中h5py與netCDF4模塊下載與安裝的教程詳解

    這篇文章主要為大家詳細(xì)介紹了基于Anaconda,下載并安裝Python中h5py與netCDF4這兩個(gè)模塊的方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01

最新評(píng)論