国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【OpenCV】高精度識(shí)別圓(支持復(fù)雜場(chǎng)景下的圓)

這篇具有很好參考價(jià)值的文章主要介紹了【OpenCV】高精度識(shí)別圓(支持復(fù)雜場(chǎng)景下的圓)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

使用 OpenCV 霍夫變換-圓檢測(cè),對(duì)周圍背景比較敏感,容易誤識(shí)別,不受控。若你也有此困惑,建議試試本文中的方法,識(shí)別效果佳,能夠很好地排除類圓矩形的干擾,話不多說直接上代碼。

代碼

一、實(shí)現(xiàn)類

import math

import cv2


class CircleDetector(object):

    '''
	Parameters
	----------
	img: ndarray
		A color image.
	threshold: int or float
        Image binary threshold.
	minRadius: int or float
		Minimum value of circle radius.
	maxRadius: int or flaot
		Maximum value of circle radius.

	Returns
	-------
	A tuple of (center(x, y), size(w, h), angle)
	'''
    def detectCircles(self, image, threshold, minRadius, maxRadius):
        circles = list()
        gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        blur_image = cv2.GaussianBlur(gray_image, (5, 5), 0)
        ret, thresh = cv2.threshold(gray_image, threshold, 255, cv2.THRESH_BINARY)
        kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5), (-1, -1))
        thresh = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel, (-1, -1))
        thresh = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, (-1, -1))

        contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

        for cnt in contours:
            if len(cnt) < 5:
                continue

            area = cv2.contourArea(cnt)
            if area < (minRadius**2) * math.pi or area > (maxRadius**2) * math.pi:
                continue

            arc_length = cv2.arcLength(cnt, True)
            radius = arc_length / (2 * math.pi)

            if not (minRadius < radius and radius < maxRadius):
                continue

            ellipse = cv2.fitEllipse(cnt)
            ratio = float(ellipse[1][0]) / float(ellipse[1][1])

            if ratio > 0.9 and ratio < 1.1:
                corner = cv2.approxPolyDP(cnt, 0.02 * arc_length, True)
                cornerNum = len(corner)
                if cornerNum > 4: # 當(dāng)cornerNum=4時(shí),識(shí)別矩形;而cornerNum>4時(shí),識(shí)別圓
                    circles.append(ellipse)

        return circles

二、使用

import cv2

from detector.circle_detector import CircleDetector

if __name__ == '__main__':
    src = 0
    cap = cv2.VideoCapture(src)

    detector = CircleDetector()
    
    while True:
        if not cap.isOpened():
            print('相機(jī)未打開')
            break

        ret, frame = cap.read()

        if not ret:
            continue

        circles = detector.detectCircles(frame, 158, 50, 200)
        img = frame.copy()

        for circle in circles:
            cv2.circle(img, (int(circle[0][0]), int(circle[0][1])), int(20), (0, 255, 0), thickness=5)

        cv2.imshow('image', img)
        key = cv2.waitKey(int(1000/30)) & 0xFF
        if key == ord(' '):
            break

三、注意事項(xiàng)

如果遇到無法識(shí)別,或者誤識(shí)別,注意調(diào)整參數(shù)。

  1. 確保你圖中所繪圓的半徑在[minRadius, maxRadius]之間。
  2. 建議使用白背景黑圓作為識(shí)別目標(biāo),否之請(qǐng)自行調(diào)整Threshold,直到識(shí)別效果達(dá)到最佳狀態(tài)(可以查看二值化圖片進(jìn)行分析)。

效果圖

opencv識(shí)別圓形,1024程序員節(jié),opencv,python,計(jì)算機(jī)視覺文章來源地址http://www.zghlxwxcb.cn/news/detail-620902.html

到了這里,關(guān)于【OpenCV】高精度識(shí)別圓(支持復(fù)雜場(chǎng)景下的圓)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于深度學(xué)習(xí)的高精度猴子檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度猴子檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度猴子檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位猴子目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的猴子目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)出。本系統(tǒng)采用YOLOv5目標(biāo)檢測(cè)模型訓(xùn)練數(shù)據(jù)集,使用

    2024年02月12日
    瀏覽(20)
  • 基于深度學(xué)習(xí)的高精度雞蛋檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度雞蛋檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度雞蛋檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位雞蛋目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的雞蛋目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)出。本系統(tǒng)采用YOLOv5目標(biāo)檢測(cè)模型訓(xùn)練數(shù)據(jù)集,使用

    2024年02月11日
    瀏覽(28)
  • 基于深度學(xué)習(xí)的高精度動(dòng)物檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度動(dòng)物檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度動(dòng)物檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位動(dòng)物目標(biāo)(狼、鹿、豬、兔和浣熊),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的動(dòng)物(狼、鹿、豬、兔和浣熊)目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)

    2024年02月08日
    瀏覽(22)
  • 基于深度學(xué)習(xí)的高精度鴿子檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度鴿子檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度鴿子檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位鴿子目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的鴿子目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)出。本系統(tǒng)采用YOLOv5目標(biāo)檢測(cè)模型訓(xùn)練數(shù)據(jù)集,使用

    2024年02月09日
    瀏覽(26)
  • 基于深度學(xué)習(xí)的高精度水果檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度水果檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度水果(蘋果、香蕉、葡萄、橘子、菠蘿和西瓜)檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位水果目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的水果目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)出。本系統(tǒng)

    2024年02月11日
    瀏覽(20)
  • 基于深度學(xué)習(xí)的高精度足球檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度足球檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度足球檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位足球目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的足球目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)出。本系統(tǒng)采用YOLOv5目標(biāo)檢測(cè)模型訓(xùn)練數(shù)據(jù)集,使用

    2024年02月11日
    瀏覽(28)
  • 基于深度學(xué)習(xí)的高精度煙霧檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度煙霧檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度煙霧檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位煙霧目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的煙霧目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)出。本系統(tǒng)采用YOLOv5目標(biāo)檢測(cè)模型訓(xùn)練數(shù)據(jù)集,使用

    2024年02月11日
    瀏覽(20)
  • 基于深度學(xué)習(xí)的高精度綿羊檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度綿羊檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度綿羊檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位綿羊目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的綿羊目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)出。本系統(tǒng)采用YOLOv5目標(biāo)檢測(cè)模型訓(xùn)練數(shù)據(jù)集,使用

    2024年02月10日
    瀏覽(21)
  • 基于深度學(xué)習(xí)的高精度老虎檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度老虎檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度老虎檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位老虎目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的老虎目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)出。本系統(tǒng)采用YOLOv5目標(biāo)檢測(cè)模型訓(xùn)練數(shù)據(jù)集,使用

    2024年02月12日
    瀏覽(23)
  • 基于深度學(xué)習(xí)的高精度奶牛檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    基于深度學(xué)習(xí)的高精度奶牛檢測(cè)識(shí)別系統(tǒng)(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度學(xué)習(xí)的高精度奶牛檢測(cè)識(shí)別系統(tǒng)可用于日常生活中或野外來檢測(cè)與定位奶牛目標(biāo),利用深度學(xué)習(xí)算法可實(shí)現(xiàn)圖片、視頻、攝像頭等方式的奶牛目標(biāo)檢測(cè)識(shí)別,另外支持結(jié)果可視化與圖片或視頻檢測(cè)結(jié)果的導(dǎo)出。本系統(tǒng)采用YOLOv5目標(biāo)檢測(cè)模型訓(xùn)練數(shù)據(jù)集,使用

    2024年02月08日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包