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

OpenCV霍夫圓變換cv2.HoughCircles()

 更新時間:2021年07月28日 15:53:02   作者:程序媛一枚~  
這篇博客將學(xué)習(xí)如何使用霍夫圓變換在圖像中找到圓圈,OpenCV使用cv2.HoughCircles()實現(xiàn)霍夫圓變換,具有一定的參考價值,感興趣的小伙伴們可以參考一下

這篇博客將學(xué)習(xí)如何使用霍夫圓變換在圖像中找到圓圈,OpenCV使用cv2.HoughCircles()實現(xiàn)霍夫圓變換。

circles = cv2.HoughCircles(img,
cv2.HOUGH_GRADIENT, 1, 20,
param1=50, param2=40, minRadius=25, maxRadius=0)

img: 待檢測的灰度圖cv2.HOUGH_GRADIENT:檢測的方法,霍夫梯度1:檢測的圓與原始圖像具有相同的大小,dp=2,檢測的圓是原始圖像的一半20:檢測到的相鄰圓的中心的最小距離(如果參數(shù)太小,除了一個真實的圓外,還可能會錯誤地檢測到多個相鄰圓。如果太大,可能會漏掉一些圓。)param1:在#HOUGHŠu梯度的情況下,它是較高的. 兩個閾值傳遞到Canny邊緣檢測器(較低的一個小兩倍)。param2:在#HOUGHŠu梯度的情況下,它是檢測階段圓心的累加器閾值。它越小,就越可能檢測到假圓;minRadius:最小圓半徑maxRadius:最大圓半徑,如果<=0,則使用最大圖像尺寸。如果<0,則返回沒有找到半徑的中心。

1. 效果圖

原始圖 VS 檢測圓效果圖如下:

如下右圖可以看到3個外側(cè)圓綠色,圓心紅色被成功檢測到;

在這里插入圖片描述

圓的最小半徑設(shè)置由25調(diào)整為10,也可能會錯誤的檢測到圓,效果圖如下:

在這里插入圖片描述

檢測圓半徑的閾值(param2設(shè)置35)的結(jié)果,最小圓半徑設(shè)置10,也可能會錯誤的檢測到圓,效果圖如下:

在這里插入圖片描述

2. 源碼

# 霍夫圓檢測

import cv2
import numpy as np

cimg = cv2.imread('opencv_logo_350.jpg')
cv2.imshow("origin", cimg)
cv2.waitKey(0)
img = cv2.cvtColor(cimg,cv2.COLOR_BGR2GRAY)
img = cv2.medianBlur(img, 5)
cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)

# - img: 待檢測的灰度圖
# - cv2.HOUGH_GRADIENT:檢測的方法,霍夫梯度
# - 1:檢測的圓與原始圖像具有相同的大小,dp=2,檢測的圓是原始圖像的一半
# - 20:檢測到的圓的中心的最小距離(如果參數(shù)為太小,除了一個真實的圓外,還可能會錯誤地檢測到多個相鄰圓。如果太大,可能會漏掉一些圓。)
# - param1:在#HOUGHŠu梯度的情況下,它是較高的. 兩個閾值傳遞到Canny邊緣檢測器(較低的一個小兩倍)。
# - param2:在#HOUGHŠu梯度的情況下,它是檢測階段圓心的累加器閾值。它越小,就越可能檢測到假圓;
# - minRadius:最小圓半徑,也可能會檢測到假圓
# - maxRadius:最大圓半徑,如果<=0,則使用最大圖像尺寸。如果<0,則返回沒有找到半徑的中心。
circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20,
                           param1=50, param2=40, minRadius=0, maxRadius=0)
# 最小圓半徑設(shè)置不合適,也可能會檢測到假圓
# circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20,
#                            param1=50, param2=40, minRadius=0, maxRadius=0)
# circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20,
#                            param1=50, param2=30, minRadius=10, maxRadius=0)

circles = np.uint16(np.around(circles))

print(len(circles))
print(circles)
for i in circles[0, :]:
    # 繪制外圈圓(藍色)
    cv2.circle(cimg, (i[0], i[1]), i[2], (0, 255, 0), 2)

    # 繪制圓心(紅色)
    cv2.circle(cimg, (i[0], i[1]), 2, (0, 0, 255), 3)

cv2.imshow('detected circles', cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()

參考

https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.html#hough-circles

到此這篇關(guān)于OpenCV霍夫圓變換cv2.HoughCircles()的文章就介紹到這了,更多相關(guān)OpenCV霍夫圓變換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 數(shù)據(jù)庫查詢返回list或tuple實例

    python 數(shù)據(jù)庫查詢返回list或tuple實例

    這篇文章主要介紹了python 數(shù)據(jù)庫查詢返回list或tuple實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python中input和raw_input的一點區(qū)別

    Python中input和raw_input的一點區(qū)別

    這篇文章主要介紹了Python中input和raw_input的一點區(qū)別,它們都是用來讀取控制臺輸入的函數(shù),需要的朋友可以參考下
    2014-10-10
  • python計算機視覺opencv圖像金字塔輪廓及模板匹配

    python計算機視覺opencv圖像金字塔輪廓及模板匹配

    這篇文章主要為大家介紹了python計算機視覺opencv圖像金字塔圖像輪廓及模板匹配的學(xué)習(xí)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • python中filter,map,reduce的作用

    python中filter,map,reduce的作用

    這篇文章主要介紹了python中filter,map,reduce的作用,文章首先通過map函數(shù)展開,map主要作用是計算一個序列或者多個序列進行函數(shù)映射之后的值,感興趣的朋友可以參考一下
    2022-06-06
  • python Scrapy框架原理解析

    python Scrapy框架原理解析

    這篇文章主要介紹了python Scrapy框架原理的相關(guān)資料,幫助大家更好的理解和使用python爬蟲,感興趣的朋友可以了解下
    2021-01-01
  • python3.6環(huán)境安裝+pip環(huán)境配置教程圖文詳解

    python3.6環(huán)境安裝+pip環(huán)境配置教程圖文詳解

    這篇文章主要介紹了python3.6環(huán)境安裝+pip環(huán)境配置教程圖文詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • python程序超時處理方式

    python程序超時處理方式

    這篇文章主要介紹了python程序超時處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • pycharm轉(zhuǎn)移緩存目錄的實現(xiàn)

    pycharm轉(zhuǎn)移緩存目錄的實現(xiàn)

    Pycharm在使用過程中,Pycharm會生成大量緩存文件,而這些緩存文件默認存儲在C盤的用戶目錄里面,導(dǎo)致C盤空間被占用,本文主要介紹了pycharm轉(zhuǎn)移緩存目錄,感興趣的可以了解一下
    2023-10-10
  • Python元組定義及集合的使用

    Python元組定義及集合的使用

    這篇文章主要介紹了Python元組定義及集合的使用,元組是Python中的一個內(nèi)置的數(shù)據(jù)結(jié)構(gòu),它是一個不可變的序列,所謂的不可變序列就是不可以進行增刪改的操作
    2022-07-07
  • 基于Python編寫一個計算器程序,實現(xiàn)簡單的加減乘除和取余二元運算

    基于Python編寫一個計算器程序,實現(xiàn)簡單的加減乘除和取余二元運算

    這篇文章主要介紹了基于Python編寫一個計算器程序,實現(xiàn)簡單的加減乘除和取余二元運算,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評論