最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中OpenCV實(shí)現(xiàn)查找輪廓的實(shí)例

 更新時(shí)間:2021年06月08日 08:32:23   作者:GoCodingInMyWay  
本文將結(jié)合實(shí)例代碼,介紹 OpenCV 如何查找輪廓、獲取邊界框。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文將結(jié)合實(shí)例代碼,介紹 OpenCV 如何查找輪廓、獲取邊界框。

代碼: contours.py

OpenCV 提供了 findContours 函數(shù)查找輪廓,需要以二值化圖像作為輸入、并指定些選項(xiàng)調(diào)用即可。

我們以下圖作為示例:

二值化圖像

代碼工程 data/ 提供了小狗和紅球的二值化掩膜圖像:

其使用預(yù)訓(xùn)練好的實(shí)例分割模型來生成的,腳本可見 detectron2_seg_threshold.py。模型檢出結(jié)果,如下:

模型用的 Mask R-CNN 已有預(yù)測(cè)邊框。但其他模型會(huì)有只出預(yù)測(cè)掩膜的,此時(shí)想要邊框就可以使用 OpenCV 來提取。

本文代碼也提供了根據(jù)色域來獲取紅球掩膜的辦法:

import cv2 as cv
import numpy as np

# 讀取圖像
img = cv.imread(args.image, cv.IMREAD_COLOR)

# HSV 閾值,獲取掩膜
def _threshold_hsv(image, lower, upper):
  hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)
  mask = cv.inRange(hsv, lower, upper)
  result = cv.bitwise_and(image, image, mask=mask)
  return result, mask

_, thres = _threshold_hsv(img, np.array([0,110,190]), np.array([7,255,255]))

# 清除小點(diǎn)(可選)
kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 3), (1, 1))
thres = cv.morphologyEx(thres, cv.MORPH_OPEN, kernel)

查找輪廓

# 查找輪廓
#  cv.RETR_EXTERNAL: 只查找外部輪廓
contours, hierarchy = cv.findContours(
  threshold, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)

# 近似輪廓,減點(diǎn)(可選)
contours_poly = [cv.approxPolyDP(c, 3, True) for c in contours]

# 繪制輪廓
h, w = threshold.shape[:2]
drawing = np.zeros((h, w, 3), dtype=np.uint8)
for i in range(len(contours)):
  cv.drawContours(drawing, contours_poly, i, (0, 255, 0), 1, cv.LINE_8, hierarchy)

獲取邊界框

boundingRect 獲取邊界框,并繪制:

for contour in contours_poly:
  rect = cv.boundingRect(contour)
  cv.rectangle(drawing,
                (int(rect[0]), int(rect[1])),
                (int(rect[0]+rect[2]), int(rect[1]+rect[3])),
                (0, 255, 0), 2, cv.LINE_8)

minEnclosingCircle 獲取邊界圈,并繪制:

for contour in contours_poly:
  center, radius = cv.minEnclosingCircle(contour)
  cv.circle(drawing, (int(center[0]), int(center[1])), int(radius),
            (0, 255, 0), 2, cv.LINE_8)

參考

OpenCV Tutorials / Image Processing

到此這篇關(guān)于OpenCV實(shí)現(xiàn)查找輪廓的實(shí)例的文章就介紹到這了,更多相關(guān)OpenCV 查找輪廓內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 實(shí)現(xiàn)將numpy中的nan和inf,nan替換成對(duì)應(yīng)的均值

    Python 實(shí)現(xiàn)將numpy中的nan和inf,nan替換成對(duì)應(yīng)的均值

    這篇文章主要介紹了Python 實(shí)現(xiàn)將numpy中的nan和inf,nan替換成對(duì)應(yīng)的均值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python讀取html中指定元素生成excle文件示例

    python讀取html中指定元素生成excle文件示例

    這篇文章主要介紹了python讀取html中指定元素生成excle文件示例,需要的朋友可以參考下
    2014-04-04
  • python 實(shí)現(xiàn)保存最新的三份文件,其余的都刪掉

    python 實(shí)現(xiàn)保存最新的三份文件,其余的都刪掉

    今天小編就為大家分享一篇python 實(shí)現(xiàn)保存最新的三份文件,其余的都刪掉,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python中BeautifulSoup通過查找Id獲取元素信息

    Python中BeautifulSoup通過查找Id獲取元素信息

    這篇文章主要介紹了Python中BeautifulSoup通過查找Id獲取元素信息,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python 讀取、寫入txt文件的示例

    python 讀取、寫入txt文件的示例

    這篇文章主要介紹了python 讀取、寫入txt文件的示例,幫助大家更好的利用python 處理文件,感興趣的朋友可以了解下
    2020-09-09
  • 我就是這樣學(xué)習(xí)Python中的列表

    我就是這樣學(xué)習(xí)Python中的列表

    這篇文章主要給大家介紹了關(guān)于我是如何學(xué)習(xí)Python中的列表的,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • pandas滑動(dòng)窗口學(xué)習(xí)筆記(shift, diff, pct_change)

    pandas滑動(dòng)窗口學(xué)習(xí)筆記(shift, diff, pct_change)

    pandas中有3類窗口,分別是滑動(dòng)窗口rolling?、擴(kuò)張窗口expanding以及指數(shù)加權(quán)窗口ewm,下面就來詳細(xì)的介紹一下這三種的用法,感興趣的可以了解一下
    2024-03-03
  • Python基礎(chǔ)之hashlib模塊詳解

    Python基礎(chǔ)之hashlib模塊詳解

    這篇文章主要介紹了Python基礎(chǔ)之hashlib模塊詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Django中的用戶身份驗(yàn)證示例詳解

    Django中的用戶身份驗(yàn)證示例詳解

    這篇文章主要給大家介紹了關(guān)于Django中用戶身份驗(yàn)證的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python數(shù)據(jù)庫sqlite3圖文實(shí)例詳解

    Python數(shù)據(jù)庫sqlite3圖文實(shí)例詳解

    SQLite是一個(gè)進(jìn)程內(nèi)的庫,實(shí)現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的SQL數(shù)據(jù)庫引擎,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)庫sqlite3的相關(guān)資料,需要的朋友可以參考下
    2022-09-09

最新評(píng)論

兴文县| 五大连池市| 龙里县| 贵南县| 崇文区| 乳山市| 宜宾县| 澄江县| 曲麻莱县| 靖江市| 涪陵区| 晴隆县| 陵水| 石城县| 辽中县| 克东县| 瓦房店市| 闸北区| 佛学| 滦南县| 武清区| 和平区| 新兴县| 当阳市| 新建县| 汉寿县| 绩溪县| 宣威市| 新邵县| 荆州市| 高邮市| 江安县| 忻州市| 石阡县| 辉县市| 大宁县| 长葛市| 沂源县| 镇宁| 铁力市| 财经|