欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python hough變換檢測直線的實(shí)現(xiàn)方法

 更新時間:2019年07月12日 11:38:05   作者:Jackilina_Stone  
這篇文章主要介紹了python hough變換檢測直線的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1 原理

 2 檢測步驟

將參數(shù)空間(ρ,θ) 量化成m*n(m為ρ的等份數(shù),n為θ的等份數(shù))個單元,并設(shè)置累加器矩陣,初始值為0;

對圖像邊界上的每一個點(diǎn)(x,y)帶入ρ=xcosθ+ysinθ,求得每個θ對應(yīng)的ρ值,并在ρ和θ所對應(yīng)的單元,將累加器加1,即:Q(i,j)=Q(i,j)+1;

檢驗(yàn)參數(shù)空間中每個累加器的值,累加器最大的單元所對應(yīng)的ρ和θ即為直角坐標(biāo)系中直線方程的參數(shù)。

 3 接口

image:二值圖像,canny邊緣檢測輸出。這里是result。
rho: 以像素為單位的距離精度,這里為1像素。如果想要檢測的線段更多,可以設(shè)為0.1。
theta: 以弧度為單位的角度精度,這里為numpy.pi/180。如果想要檢測的線段更多,可以設(shè)為0.01 * numpy.pi/180。
threshod: 閾值參數(shù),int類型,超過設(shè)定閾值才被檢測出線段,這里為10。
minLineLength:線段以像素為單位的最小長度。
maxLineGap:同一方向上兩條線段判定為一條線段的最大允許間隔。

4 代碼及結(jié)果

import os
import numpy as np
import cv2
from PIL import Image, ImageEnhance
import math
 
 
def img_processing(img):
  # 灰度化
  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU)
  # canny邊緣檢測
  edges = cv2.Canny(binary, 50, 150, apertureSize=3)
  return edges
 
 
def line_detect(img):
  img = Image.open(img)
  img = ImageEnhance.Contrast(img).enhance(3)
  # img.show()
  img = np.array(img)
  result = img_processing(img)
  # 霍夫線檢測
  lines = cv2.HoughLinesP(result, 1, 1 * np.pi/180, 10, minLineLength=10, maxLineGap=5)
  # print(lines)
  print("Line Num : ", len(lines))
 
  # 畫出檢測的線段
  for line in lines:
    for x1, y1, x2, y2 in line:
      cv2.line(img, (x1, y1), (x2, y2), (255, 0, 0), 1)
    pass
  img = Image.fromarray(img, 'RGB')
  img.show()
 
 
if __name__ == "__main__":
  line_detect("1.jpg")
  pass

原圖如下:

檢測結(jié)果:

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

相關(guān)文章

  • 使用Python實(shí)現(xiàn)Mysql數(shù)據(jù)庫相關(guān)操作詳解

    使用Python實(shí)現(xiàn)Mysql數(shù)據(jù)庫相關(guān)操作詳解

    這篇文章主要介紹了使用Python實(shí)現(xiàn)Mysql數(shù)據(jù)庫相關(guān)操作詳解,pymysql是Python中操作數(shù)據(jù)庫的第三方模塊,通過這個模塊的相關(guān)方法,我們可以連接并且去操作mysql數(shù)據(jù)庫,需要的朋友可以參考下
    2023-08-08
  • python 讀取以空格分開的文件操作

    python 讀取以空格分開的文件操作

    這篇文章主要介紹了python 讀取以空格分開的文件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • win7+Python3.5下scrapy的安裝方法

    win7+Python3.5下scrapy的安裝方法

    這篇文章主要介紹了win7+Python3.5下scrapy的安裝方法
    2018-07-07
  • python實(shí)現(xiàn)轉(zhuǎn)圈打印矩陣

    python實(shí)現(xiàn)轉(zhuǎn)圈打印矩陣

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)轉(zhuǎn)圈打印矩陣,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python循環(huán)中else,break和continue的用法實(shí)例詳解

    Python循環(huán)中else,break和continue的用法實(shí)例詳解

    這篇文章主要介紹了Python循環(huán)中else,break和continue的用法,結(jié)合實(shí)例形式詳細(xì)分析了Python for循環(huán)、while循環(huán)中else,break和continue的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • Python初識二叉樹續(xù)之實(shí)戰(zhàn)binarytree

    Python初識二叉樹續(xù)之實(shí)戰(zhàn)binarytree

    binarytree庫是一個Python的第三方庫,這個庫實(shí)現(xiàn)了一些二叉樹相關(guān)的常用方法,使用二叉樹時,可以直接調(diào)用,不需要再自己實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Python初識二叉樹之實(shí)戰(zhàn)binarytree的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • kali最新國內(nèi)更新源sources

    kali最新國內(nèi)更新源sources

    這篇文章主要介紹了kali最新國內(nèi)更新源sources的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 淺談Python中的函數(shù)傳遞問題

    淺談Python中的函數(shù)傳遞問題

    這篇文章主要為大家介紹了Python函數(shù)傳遞問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • 利用python庫在局域網(wǎng)內(nèi)傳輸文件的方法

    利用python庫在局域網(wǎng)內(nèi)傳輸文件的方法

    今天小編就為大家分享一篇利用python庫在局域網(wǎng)內(nèi)傳輸文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解Python讀取和寫入操作CSV文件的方法

    詳解Python讀取和寫入操作CSV文件的方法

    CSV 文件(逗號分隔值文件)是一種純文本文件,它使用特定的結(jié)構(gòu)來排列表格數(shù)據(jù)。本文將詳細(xì)介紹Python中讀取個寫入操作CSV文件的方法,需要的可以參考一下
    2022-03-03

最新評論