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

python-opencv在有噪音的情況下提取圖像的輪廓實(shí)例

 更新時(shí)間:2017年08月30日 11:37:41   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇python-opencv在有噪音的情況下提取圖像的輪廓實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

對(duì)于一般的圖像提取輪廓,介紹了一個(gè)很好的方法,但是對(duì)于有噪聲的圖像,并不能很好地捕獲到目標(biāo)物體。

比如對(duì)于我的鼠標(biāo),提取的輪廓效果并不好,因?yàn)樵肼暫芏啵?/strong>

所以本文增加了去掉噪聲的部分。

首先加載原始圖像,并顯示圖像

img = cv2.imread("temp.jpg")    #載入圖像
h, w = img.shape[:2]      #獲取圖像的高和寬 
cv2.imshow("Origin", img) 

然后進(jìn)行低通濾波處理,進(jìn)行降噪

blured = cv2.blur(img,(5,5))    #進(jìn)行濾波去掉噪聲
cv2.imshow("Blur", blured)     #顯示低通濾波后的圖像

使用floodfill來(lái)去掉目標(biāo)周?chē)谋尘?,泛洪填充?lèi)始于ps的魔棒工具,這里用來(lái)清除背景。

然后轉(zhuǎn)換成灰度圖

gray = cv2.cvtColor(blured,cv2.COLOR_BGR2GRAY) 
cv2.imshow("gray", gray) 

此時(shí)目標(biāo)圖像周?chē)袑?xiě)不光滑,還有一些噪聲,因此進(jìn)行開(kāi)閉運(yùn)算,得到比較光滑的目標(biāo)

#定義結(jié)構(gòu)元素 
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(50, 50))
#開(kāi)閉運(yùn)算,先開(kāi)運(yùn)算去除背景噪聲,再繼續(xù)閉運(yùn)算填充目標(biāo)內(nèi)的孔洞
opened = cv2.morphologyEx(gray, cv2.MORPH_OPEN, kernel) 
closed = cv2.morphologyEx(opened, cv2.MORPH_CLOSE, kernel) 
cv2.imshow("closed", closed)

接著轉(zhuǎn)換成二值圖以便于獲取圖像的輪廓

最后進(jìn)行輪廓提取,抓取到目標(biāo)

#找到輪廓
_,contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) 
#繪制輪廓
cv2.drawContours(img,contours,-1,(0,0,255),3) 
#繪制結(jié)果
cv2.imshow("result", img)

全部代碼如下

#coding=utf-8 
import cv2 
import numpy as np

img = cv2.imread("temp.jpg")    #載入圖像
h, w = img.shape[:2]      #獲取圖像的高和寬 
cv2.imshow("Origin", img)     #顯示原始圖像

blured = cv2.blur(img,(5,5))    #進(jìn)行濾波去掉噪聲
cv2.imshow("Blur", blured)     #顯示低通濾波后的圖像

mask = np.zeros((h+2, w+2), np.uint8)  #掩碼長(zhǎng)和寬都比輸入圖像多兩個(gè)像素點(diǎn),滿水填充不會(huì)超出掩碼的非零邊緣 
#進(jìn)行泛洪填充
cv2.floodFill(blured, mask, (w-1,h-1), (255,255,255), (2,2,2),(3,3,3),8)
cv2.imshow("floodfill", blured) 

#得到灰度圖
gray = cv2.cvtColor(blured,cv2.COLOR_BGR2GRAY) 
cv2.imshow("gray", gray) 


#定義結(jié)構(gòu)元素 
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(50, 50))
#開(kāi)閉運(yùn)算,先開(kāi)運(yùn)算去除背景噪聲,再繼續(xù)閉運(yùn)算填充目標(biāo)內(nèi)的孔洞
opened = cv2.morphologyEx(gray, cv2.MORPH_OPEN, kernel) 
closed = cv2.morphologyEx(opened, cv2.MORPH_CLOSE, kernel) 
cv2.imshow("closed", closed) 

#求二值圖
ret, binary = cv2.threshold(closed,250,255,cv2.THRESH_BINARY) 
cv2.imshow("binary", binary) 

#找到輪廓
_,contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) 
#繪制輪廓

cv2.drawContours(img,contours,-1,(0,0,255),3) 
#繪制結(jié)果
cv2.imshow("result", img)

cv2.waitKey(0) 
cv2.destroyAllWindows()

以上這篇python-opencv在有噪音的情況下提取圖像的輪廓實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python Switch Case三種實(shí)現(xiàn)方法代碼實(shí)例

    Python Switch Case三種實(shí)現(xiàn)方法代碼實(shí)例

    這篇文章主要介紹了Python Switch Case2種實(shí)現(xiàn)方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python模塊搜索路徑代碼詳解

    Python模塊搜索路徑代碼詳解

    這篇文章主要介紹了Python模塊搜索路徑代碼詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Python爬蟲(chóng)urllib和requests的區(qū)別詳解

    Python爬蟲(chóng)urllib和requests的區(qū)別詳解

    這篇文章主要介紹了Python爬蟲(chóng)urllib和requests的區(qū)別詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Python自定義主從分布式架構(gòu)實(shí)例分析

    Python自定義主從分布式架構(gòu)實(shí)例分析

    這篇文章主要介紹了Python自定義主從分布式架構(gòu),結(jié)合實(shí)例形式分析了主從分布式架構(gòu)的結(jié)構(gòu)、原理與具體的代碼實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-09-09
  • Python中AI圖像識(shí)別實(shí)現(xiàn)身份證識(shí)別

    Python中AI圖像識(shí)別實(shí)現(xiàn)身份證識(shí)別

    圖像識(shí)別說(shuō)白了就是把一張照片上面的文字進(jìn)行提取,提供工作效率,本文主要介紹了Python 身份證識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Python如何在終端彩色打印輸出

    Python如何在終端彩色打印輸出

    大家好,本篇文章主要講的是Python如何在終端彩色打印輸出,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • 不到20行實(shí)現(xiàn)Python代碼即可制作精美證件照

    不到20行實(shí)現(xiàn)Python代碼即可制作精美證件照

    這篇文章主要介紹了不到20行實(shí)現(xiàn)Python代碼即可制作精美證件照,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • django rest framework 數(shù)據(jù)的查找、過(guò)濾、排序的示例

    django rest framework 數(shù)據(jù)的查找、過(guò)濾、排序的示例

    這篇文章主要介紹了 django rest framework 數(shù)據(jù)的查找、過(guò)濾、排序,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Python中requests、aiohttp、httpx性能比拼

    Python中requests、aiohttp、httpx性能比拼

    本文主要介紹了Python中requests、aiohttp、httpx性能比拼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • pytest測(cè)試框架+allure超詳細(xì)教程

    pytest測(cè)試框架+allure超詳細(xì)教程

    這篇文章主要介紹了pytest測(cè)試框架+allure超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11

最新評(píng)論

香河县| 建宁县| 阿拉善盟| 清涧县| 稷山县| 留坝县| 浏阳市| 江油市| 仁寿县| 巧家县| 禄劝| 府谷县| 合肥市| 中宁县| 沙河市| 进贤县| 怀集县| 措勤县| 银川市| 久治县| 阿勒泰市| 绵阳市| 乌拉特前旗| 丽江市| 呼图壁县| 丰县| 龙井市| 临夏县| 兰考县| 长岛县| 井冈山市| 黄平县| 元江| 龙岩市| 青铜峡市| 巴塘县| 德庆县| 祁东县| 沁源县| 浦东新区| 庆阳市|