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

Python+OpenCV圖像處理——實(shí)現(xiàn)輪廓發(fā)現(xiàn)

 更新時(shí)間:2020年10月23日 15:52:13   作者:蛋片雞  
這篇文章主要介紹了Python+OpenCV實(shí)現(xiàn)輪廓發(fā)現(xiàn),幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下

簡介:輪廓發(fā)現(xiàn)是基于圖像邊緣提取的基礎(chǔ)尋找對象輪廓的方法,所以邊緣提取的閾值選定會(huì)影響最終輪廓發(fā)現(xiàn)結(jié)果。

代碼如下:

import cv2 as cv
import numpy as np
def contours_demo(image):
  dst = cv.GaussianBlur(image, (3, 3), 0) #高斯模糊去噪
  gray = cv.cvtColor(dst, cv.COLOR_RGB2GRAY)
  ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) #用大律法、全局自適應(yīng)閾值方法進(jìn)行圖像二值化
  cv.imshow("binary image", binary)
  cloneTmage, contours, heriachy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
  for i, contour in enumerate(contours):
    cv.drawContours(image, contours, i, (0, 0, 255), 2)
    print(i)
  cv.imshow("contours", image)
  for i, contour in enumerate(contours):
    cv.drawContours(image, contours, i, (0, 0, 255), -1)
  cv.imshow("pcontours", image)
src = cv.imread('E:/imageload/coins.jpg')
cv.namedWindow('input_image', cv.WINDOW_NORMAL) #設(shè)置為WINDOW_NORMAL可以任意縮放
cv.imshow('input_image', src)
contours_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

運(yùn)行結(jié)果:

注意:

1.Opencv發(fā)現(xiàn)輪廓的函數(shù)原型為:findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> image, contours, hierarchy

image參數(shù)表示8位單通道圖像矩陣,可以是灰度圖,但更常用的是二值圖像,一般是經(jīng)過Canny、拉普拉斯等邊緣檢測算子處理過的二值圖像。

mode參數(shù)表示輪廓檢索模式:

①CV_RETR_EXTERNAL:只檢測最外圍輪廓,包含在外圍輪廓內(nèi)的內(nèi)圍輪廓被忽略。

②CV_RETR_LIST:檢測所有的輪廓,包括內(nèi)圍、外圍輪廓,但是檢測到的輪廓不建立等級關(guān)系,彼此之間獨(dú)立,沒有等級關(guān)系,這就意味著這個(gè)檢索模式下不存在父輪廓或內(nèi)嵌輪廓。

③CV_RETR_CCOMP:檢測所有的輪廓,但所有輪廓只建立兩個(gè)等級關(guān)系,外圍為頂層,若外圍內(nèi)的內(nèi)圍輪廓還包含了其他的輪廓信息,則內(nèi)圍內(nèi)的所有輪廓均歸屬于頂層。

④CV_RETR_TREE:檢測所有輪廓,所有輪廓建立一個(gè)等級樹結(jié)構(gòu),外層輪廓包含內(nèi)層輪廓,內(nèi)層輪廓還可以繼續(xù)包含內(nèi)嵌輪廓。

method參數(shù)表示輪廓的近似方法:

①CV_CHAIN_APPROX_NONE 存儲(chǔ)所有的輪廓點(diǎn),相鄰的兩個(gè)點(diǎn)的像素位置差不超過1,即max (abs (x1 - x2), abs(y2 - y1) == 1。

②CV_CHAIN_APPROX_SIMPLE壓縮水平方向,垂直方向,對角線方向的元素,只保留該方向的終點(diǎn)坐標(biāo),例如一個(gè)矩形輪廓只需4個(gè)點(diǎn)來保存輪廓信息。

③CV_CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS使用teh-Chinl chain 近似算法。

contours參數(shù)是一個(gè)list,表示存儲(chǔ)的每個(gè)輪廓的點(diǎn)集合。

hierarchy參數(shù)是一個(gè)list,list中元素個(gè)數(shù)和輪廓個(gè)數(shù)相同,每個(gè)輪廓contours[i]對應(yīng)4個(gè)hierarchy元素hierarchy[i][0] ~hierarchy[i][3],分別表示后一個(gè)輪廓、前一個(gè)輪廓、父輪廓、內(nèi)嵌輪廓的索引編號,如果沒有對應(yīng)項(xiàng),則該值為負(fù)數(shù)。

offset參數(shù)表示每個(gè)輪廓點(diǎn)移動(dòng)的可選偏移量。

2.Opencv繪制輪廓的函數(shù)原型為:drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) -> image

imgae參數(shù)表示目標(biāo)圖像。

contours參數(shù)表示所有輸入輪廓。

contourIdx參數(shù)表示繪制輪廓list中的哪條輪廓, 如果是負(fù)數(shù),則繪制所有輪廓。

color參數(shù)表示輪廓的顏色。

thickness參數(shù)表示繪制的輪廓線條粗細(xì),如果是負(fù)數(shù),則繪制輪廓內(nèi)部。

lineType參數(shù)表示線型。

hierarchy參數(shù)表示有關(guān)層次結(jié)構(gòu)的可選信息。

maxLevel參數(shù)表示繪制輪廓的最大級別。 如果為0,則僅繪制指定的輪廓。 如果為1,則該函數(shù)繪制輪廓和所有嵌套輪廓。 如果為2,則該函數(shù)繪制輪廓,所有嵌套輪廓,所有嵌套到嵌套的輪廓,等等。 僅當(dāng)有可用的層次結(jié)構(gòu)時(shí)才考慮此參數(shù)。

offset參數(shù)表示可選的輪廓偏移參數(shù),該參數(shù)可按指定的方式移動(dòng)所有繪制的輪廓。

以上就是Python+OpenCV圖像處理——實(shí)現(xiàn)輪廓發(fā)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于python 輪廓發(fā)現(xiàn)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Python Flask框架的安裝及應(yīng)用

    詳解Python Flask框架的安裝及應(yīng)用

    Flask誕生于愚人節(jié)開的一個(gè)玩笑,后來逐漸發(fā)展成為一個(gè)成熟的 Python Web框架,越來越受到開發(fā)者的喜愛。本文將以一個(gè)博客后臺(tái)為例,詳解Flask框架的安裝及應(yīng)用,需要的可以參考一下
    2022-05-05
  • 使用python繪制隨機(jī)地形地圖

    使用python繪制隨機(jī)地形地圖

    Python 作為一門功能強(qiáng)大的編程語言,在地圖生成方面有著豐富的資源和庫,本文將介紹如何使用 Python 中的一些工具和庫來繪制隨機(jī)地形地圖,感興趣的小伙伴可以跟著小編一起來看看
    2024-04-04
  • python uvloop事件循環(huán)庫使用功能示例探究

    python uvloop事件循環(huán)庫使用功能示例探究

    這篇文章主要為大家介紹了python uvloop事件循環(huán)庫使用功能示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 詳解Python裝飾器的四種定義形式

    詳解Python裝飾器的四種定義形式

    裝飾器(decorator)在Python框架中扮演著重要角色,是Python中實(shí)現(xiàn)切面編程(AOP)的重要手段,這篇文章主要介紹了Python裝飾器的四種定義形式,需要的朋友可以參考下
    2022-11-11
  • python 實(shí)時(shí)遍歷日志文件

    python 實(shí)時(shí)遍歷日志文件

    這篇文章主要介紹了python 實(shí)時(shí)遍歷日志文件 的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • pycharm配置anaconda環(huán)境時(shí)找不到python.exe解決辦法

    pycharm配置anaconda環(huán)境時(shí)找不到python.exe解決辦法

    今天來說一下python中一個(gè)管理包很好用的工具anaconda,可以輕松實(shí)現(xiàn)python中各種包的管理,這篇文章主要給大家介紹了關(guān)于pycharm配置anaconda環(huán)境時(shí)找不到python.exe的解決辦法,需要的朋友可以參考下
    2023-10-10
  • python決策樹之C4.5算法詳解

    python決策樹之C4.5算法詳解

    這篇文章主要為大家詳細(xì)介紹了python決策樹之C4.5算法的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 一文詳細(xì)介紹numpy在python中的用法

    一文詳細(xì)介紹numpy在python中的用法

    這篇文章主要介紹了numpy在python中的用法,NumPy是Python科學(xué)計(jì)算庫,主要用于處理大型多維數(shù)組和矩陣運(yùn)算,它提供了多種函數(shù)進(jìn)行數(shù)組操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • Python命名空間及作用域原理實(shí)例解析

    Python命名空間及作用域原理實(shí)例解析

    這篇文章主要介紹了Python命名空間及作用域原理實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Python實(shí)現(xiàn)多行注釋的另類方法

    Python實(shí)現(xiàn)多行注釋的另類方法

    這篇文章主要介紹了Python實(shí)現(xiàn)多行注釋的另類方法,本文使用的是Python多行文本功能來另類的實(shí)現(xiàn)Python的多行注釋,需要的朋友可以參考下
    2014-08-08

最新評論

左权县| 长乐市| 永昌县| 平舆县| 灵丘县| 渝北区| 固镇县| 上林县| 新宁县| 龙岩市| 滨海县| 阳原县| 富锦市| 新晃| 双江| 泸溪县| 怀集县| 南开区| 龙州县| 赤峰市| 扶绥县| 孙吴县| 夏河县| 南江县| 大宁县| 灵宝市| 沙雅县| 德庆县| 兴义市| 苏尼特右旗| 南平市| 巴青县| 房产| 那坡县| 巴里| 贵州省| 光泽县| 郴州市| 镇安县| 桦川县| 舟山市|