婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > OpenCV-Python使用分水嶺算法實現圖像的分割與提取

OpenCV-Python使用分水嶺算法實現圖像的分割與提取

熱門標簽:南陽打電話機器人 騰訊地圖標注沒法顯示 海外網吧地圖標注注冊 孝感營銷電話機器人效果怎么樣 打電話機器人營銷 ai電銷機器人的優勢 聊城語音外呼系統 地圖標注自己和別人標注區別 商家地圖標注海報

隨著當今世界的發展,計算機視覺技術的應用越來越廣泛。伴隨著硬件設備的不斷升級,構造復雜的計算機視覺應用變得越來越容易了。OpenCV像是一個黑盒,讓我們專注于視覺應用的開發,而不必過多的關注基礎圖象處理的具體細節。

圖像分割

了解分水嶺算法之前,我們需要了解什么是圖像的分割。

在圖像的處理過程中,經常需要從圖像中將前景對象作為目標圖像分割或者提取出來。例如,在視頻監控中,觀測到的是固定背景下的視頻內容,而我們對背景本身并無興趣,感興趣的是背景中出現的車輛,行人或者其他對象。我們希望將這些對象從視頻中提取出來,而忽略那些沒有對象進入背景的視頻內容。

分水嶺算法

圖像分割是圖像處理過程中一種非常重要的操作。分水嶺算法將圖像形象地比喻為地理學上的地形表面,實現圖像分割,該算法非常有用。

下面,博主對分水嶺算法的相關內容做簡單的介紹。(詳細可以參考岡薩雷斯的《數字圖像處理》一書)

任何一副灰度圖像,都可以被看作是地理學上的地形表面,灰度值越高的區域可以被看成是山峰,灰度值越低的區域可以被看成是山谷。

如果我們向每個山谷中灌注不同顏色的水。那么隨著水位的不斷升高,不同山谷的水就匯聚到一起。在這個過程中,為了防止不同山谷的水交匯,我們需要在水流可能匯合的地方構建堤壩。該過程將圖像分為兩個不同的集合:集水盆地和分水嶺線。我們構建的堤壩就是分水嶺線,也即對原始圖像的分割。這就是分水嶺算法的原理。

不過,一般的圖像都存在著噪聲,采用分水嶺算法時,會經常得到過度分割的結果。為了改善圖像分割的效果,人們提出了基于掩摸的改進的分水嶺算法。改進的分水嶺算法允許用戶將它認為是同一個分割區域的部分標注出來。這樣,分水嶺算法在處理時,就會將標注的部分處理為同一個分割區域。

如果對于該理論不怎么了解,可以使用軟件PowerPoint中的“刪除背景”功能進行觀察配合理解。

waterShed函數

在OpenCV中,可以使用函數cv2.watershed()函數實現分水嶺算法。不過,具體實現的過程,還需要借助形態學函數,距離變換函數cv2.distanceTransform(),cv2.connectedComponents()來完成圖像分割。

形態學分割

在使用分水嶺算法之前,我們需要對圖像進行簡單的形態學處理。一般情況下,我們都是使用形態學中的開運算,因為開運算是先腐蝕后膨脹的操作,能夠去除圖像內的噪聲。

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread("36.jpg")
k=np.ones((5,5),dtype=np.uint8)
e=cv2.erode(img,k)
result=cv2.subtract(img,e)

plt.subplot(131)
plt.imshow(img, cmap="gray")
plt.axis('off')

plt.subplot(132)
plt.imshow(e, cmap="gray")
plt.axis('off')

plt.subplot(133)
plt.imshow(result, cmap="gray")
plt.axis('off')
plt.show()

回顧一下,我們前面的開運算函數為cv2.erode(),這里我們首先經過開運算去除噪聲。然后減法運算cv2.subtract()獲取圖像邊界。運行之后,效果如下:

distanceTransform函數

當圖像內的各個子圖沒有連接時,可以直接使用形態學的腐蝕操作確定前景對象,但是如果圖像內的子圖連接在一起時,就很難確定前景對象了。這個時候,就需要借助變換函數cv2.distanceTransform()方便地將前景對象提取出來。

cv2.distanceTransform()反應了各個像素點與背景(值為0的像素點)的距離關系。通常情況下:

  • 如果前景對象的中心距離值為0的像素點距離較遠,會得到一個較大的值。
  • 如果前景對象的邊緣距離值為0的像素點較近,會得到一個較小的值。

下面,我們來使用該函數確定一副圖像的前景,并觀察效果。

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread("36.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
k = np.ones((5, 5), dtype=np.uint8)
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, k, iterations=2)
distTransform = cv2.distanceTransform(opening, cv2.DIST_L2, 5)
ret, fore = cv2.threshold(distTransform, 0.7 * distTransform.max(), 255, 0)

plt.subplot(131)
plt.imshow(img, cmap="gray")
plt.axis('off')

plt.subplot(132)
plt.imshow(distTransform, cmap="gray")
plt.axis('off')

plt.subplot(133)
plt.imshow(fore, cmap="gray")
plt.axis('off')
plt.show()

這里,我們使用cv2.morphologyEx函數進行開運算,同時使用cv2.distanceTransform得到距離圖像,最后在通過cv2.threshold對距離圖像進行閾值處理,確定前景。運行之后,效果如下:

確定未知區域

通過距離函數,我們獲取到了圖像的“中心”,也就是“確定前景”。為了方便后續的講解,我們將確定前景稱為F。

圖像中有了確定前景F和確定背景B,剩下的區域就是未知區域UN了。這部分區域正是分水嶺算法要進一步明確的區域。

針對一副圖像0,通過以下關系能夠得到未知區域UN:

未知區域UN=圖像0-確定背景B-確定前景F

由上述公式變換得到:

未知區域UN=(圖像0-確定背景B)-確定前景F

其中(圖像0-確定背景B)就是我們開始的減法操作,通過形態學膨脹得到。也只需要將上面的代碼添加4行并更改顯示的代碼內容:

bg=cv2.dilate(opening,k,iterations=3)
fore=np.uint8(fore)
un=cv2.subtract(bg,fore)

plt.subplot(221)
plt.imshow(img, cmap="gray")
plt.axis('off')

plt.subplot(222)
plt.imshow(bg, cmap="gray")
plt.axis('off')

plt.subplot(223)
plt.imshow(fore, cmap="gray")
plt.axis('off')

plt.subplot(224)
plt.imshow(un, cmap="gray")
plt.axis('off')
plt.show()

運行之后,效果如下:

左上為原圖

右上為原圖膨脹后得到的圖像bg,其背景圖像是確定背景B。前景圖像是“原始圖像0-確定背景B”

左下為確定前景圖像fore

右下為未知區域圖像UN

ConnectedComponents函數

明確了確定前景后,就可以對確定前景進行標注了。在OpenCV中,它提供了cv2.ConnectedComponents()函數進行標注。

該函數會將背景標注為0,將其他的對象使用從1開始的正整數標注。它只有一個參數8位單通道的待標注圖像。

返回值有兩個:retval為返回的標注數量,labels為標注的結果圖像。

下面,我們來使用該函數進行標注。代碼如下(同樣更改上面bg下面代碼就行):

bg = cv2.dilate(opening, k, iterations=3)
fore = np.uint8(fore)
ret, markets = cv2.connectedComponents(fore)
unknown=cv2.subtract(bg,fore)
markets=markets+1
markets[unknown==255]=0

plt.subplot(131)
plt.imshow(img, cmap="gray")
plt.axis('off')

plt.subplot(132)
plt.imshow(fore, cmap="gray")
plt.axis('off')

plt.subplot(133)
plt.imshow(markets, cmap="gray")
plt.axis('off')
plt.show()

修改上面fore = np.uint8(fore)的代碼,并修改輸出內容。運行之后,我們會得到原圖,前景圖像的中心點圖像fore以及標注后的結果圖像markets。效果如下:

實戰分水嶺算法

經過前文的介紹,我們了解了使用分水嶺算法進行圖像分割的基本步驟:

  • 通過形態學開運算對原始圖像0進行去噪
  • 通過腐蝕操作獲取“確定背景B”。需要注意,這里得到“原始圖像-確定背景”即可
  • 利用距離變換函數對原始圖像進行運算,并對其進行閾值處理,得到“確定前景F”
  • 計算未知區域UN(UN=0-B-F)
  • 利用函數cv2.connectedComponents()對原始圖像0進行標注
  • 對函數cv2.connectedComponents()的標注結果進行修正
  • 使用分水嶺函數完成圖像分割

完整代碼如下:

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread("36.jpg")
plt.subplot(121)
plt.imshow(img, cmap="gray")
plt.axis('off')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
k = np.ones((5, 5), dtype=np.uint8)
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, k, iterations=2)
distTransform = cv2.distanceTransform(opening, cv2.DIST_L2, 5)
ret, fore = cv2.threshold(distTransform, 0.2 * distTransform.max(), 255, 0)
bg = cv2.dilate(opening, k, iterations=3)
fore = np.uint8(fore)
ret, markets = cv2.connectedComponents(fore)
unknown = cv2.subtract(bg, fore)
markets = markets + 1
markets[unknown == 255] = 0
markets = cv2.watershed(img, markets)
img[markets == -1] = [255, 0, 0]

plt.subplot(122)
plt.imshow(img, cmap="gray")
plt.axis('off')
plt.show()

運行之后,我們就可以得到分割的圖像:

當然,參數可以調整,可以看到大致的硬幣被完整的分割出來了。

到此這篇關于OpenCV-Python使用分水嶺算法實現圖像的分割與提取的文章就介紹到這了,更多相關OpenCV圖像分割與提取內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python數字圖像處理之骨架提取與分水嶺算法
  • python opencv之分水嶺算法示例
  • Python基于分水嶺算法解決走迷宮游戲示例
  • OpenCV半小時掌握基本操作之分水嶺算法

標簽:撫州 迪慶 六盤水 南寧 聊城 揚州 楊凌 牡丹江

巨人網絡通訊聲明:本文標題《OpenCV-Python使用分水嶺算法實現圖像的分割與提取》,本文關鍵詞  OpenCV-Python,使用,分水嶺,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《OpenCV-Python使用分水嶺算法實現圖像的分割與提取》相關的同類信息!
  • 本頁收集關于OpenCV-Python使用分水嶺算法實現圖像的分割與提取的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    www国产成人免费观看视频 深夜成人网| 国产成人在线观看免费网站| 欧美激情在线一区二区| 精品国产乱码久久久久久老虎| 在线播放中文一区| 欧美一区二区私人影院日本| 欧美一级艳片视频免费观看| 欧美肥胖老妇做爰| 日韩欧美第一区| 久久久国产午夜精品| 欧美国产精品v| 亚洲欧美日韩国产另类专区| 亚洲精品免费在线| 日韩国产精品大片| 国产91色综合久久免费分享| 国产成人精品www牛牛影视| 国产91丝袜在线播放九色| 91在线观看免费视频| 色香色香欲天天天影视综合网| 欧美性大战久久久久久久蜜臀| 欧美猛男超大videosgay| 精品国产sm最大网站| 国产精品美女www爽爽爽| 亚洲国产一二三| 激情综合色丁香一区二区| 波多野结衣中文一区| 欧美视频一区二| 久久久久久久久99精品| 亚洲国产成人av| 国产一区二区三区美女| 欧美在线色视频| 久久久亚洲午夜电影| 亚洲免费成人av| 国产在线国偷精品免费看| 一本大道久久a久久综合| 日韩三级在线免费观看| 亚洲欧洲一区二区在线播放| 麻豆成人免费电影| 99久久777色| 精品国产一区久久| 亚洲福利视频导航| 成人网在线播放| 日韩精品自拍偷拍| 亚洲电影在线播放| 成人性色生活片| 日韩精品一区二区三区在线播放| 亚洲欧美激情一区二区| 国产一区二区伦理片| 欧美日韩中字一区| 亚洲欧美日韩国产手机在线| 国产福利不卡视频| 日韩精品中文字幕一区二区三区 | 日韩一级大片在线| 亚洲综合免费观看高清在线观看| 国产一区二区三区在线观看免费 | 欧美喷水一区二区| 亚洲欧美区自拍先锋| 国产一区二区三区在线观看免费| 欧美放荡的少妇| 亚洲综合一区二区三区| 99国产精品久久久久久久久久久| 2023国产精品视频| 久色婷婷小香蕉久久| 56国语精品自产拍在线观看| 亚洲与欧洲av电影| 色婷婷av久久久久久久| 亚洲欧美一区二区在线观看| 国产91精品一区二区麻豆网站| 精品国产一区二区三区av性色| 三级影片在线观看欧美日韩一区二区| 色一情一伦一子一伦一区| 成人免费在线观看入口| 97成人超碰视| 自拍偷拍欧美激情| 色婷婷久久久久swag精品| 亚洲欧洲精品天堂一级| 一本大道久久a久久精品综合| 国产精品久久久久久久久免费桃花| 久久 天天综合| 久久久久久久综合色一本| 国产精品综合视频| 国产精品不卡在线| 99精品久久免费看蜜臀剧情介绍| 中文字幕一区av| 在线观看免费成人| 免费av网站大全久久| 亚洲精品在线三区| 福利一区二区在线| 亚洲精品亚洲人成人网在线播放| 91久久香蕉国产日韩欧美9色| 亚洲高清视频在线| 精品处破学生在线二十三| 成人蜜臀av电影| 亚洲综合久久久久| 精品久久久久久无| 99re成人精品视频| 日本亚洲天堂网| 中文在线一区二区| 欧美日韩国产系列| 国产精品一区在线| 亚洲一区二区三区三| 日韩欧美你懂的| a美女胸又www黄视频久久| 天天影视涩香欲综合网| 中文字幕二三区不卡| 欧美午夜精品理论片a级按摩| 国产自产2019最新不卡| 亚洲人吸女人奶水| 2017欧美狠狠色| 欧美色图第一页| 99麻豆久久久国产精品免费优播| 婷婷成人激情在线网| 国产精品久久久久久户外露出| 欧美人动与zoxxxx乱| www.日韩av| 国产原创一区二区| 日韩专区一卡二卡| 亚洲在线视频网站| 国产精品初高中害羞小美女文| 欧美一区二区精品久久911| 99视频有精品| 国产一区二区在线视频| 午夜国产精品影院在线观看| 国产精品美女久久久久久久 | 成熟亚洲日本毛茸茸凸凹| 亚洲国产成人av| 亚洲精品视频在线观看免费| 国产午夜久久久久| 精品久久久久久无| 欧美日韩精品高清| 欧美主播一区二区三区| 91丨国产丨九色丨pron| 国产福利不卡视频| 国产精品1024| 国产酒店精品激情| 国产毛片精品视频| 精品一区二区av| 久久91精品国产91久久小草| 日韩电影网1区2区| 日本亚洲一区二区| 日本成人在线一区| 男人的j进女人的j一区| 麻豆成人91精品二区三区| 日本欧美一区二区| 免费一级欧美片在线观看| 日韩和欧美的一区| 免费精品视频在线| 久久精品国产免费| 精品一区二区三区在线观看国产| 久久国产尿小便嘘嘘| 久久精品国产亚洲a| 国产在线视频不卡二| 国产福利一区二区三区| 国产毛片精品一区| a亚洲天堂av| 欧美精品在线一区二区| 欧美一区二区精美| 久久久久久麻豆| 国产精品成人在线观看| 一区二区激情小说| 日本亚洲天堂网| 国产不卡视频一区| 色94色欧美sute亚洲线路一ni| 色综合久久久久综合体| 欧美在线免费观看亚洲| 欧美一级夜夜爽| 国产三级三级三级精品8ⅰ区| 中国色在线观看另类| 一区二区三区四区乱视频| 日韩黄色免费电影| 高清在线观看日韩| 欧美日韩视频不卡| 日本一区二区在线不卡| 亚洲一区二区三区国产| 日韩不卡一区二区三区| 国产aⅴ综合色| 欧美亚洲国产一区在线观看网站| 欧美巨大另类极品videosbest| 国产色爱av资源综合区| 亚洲国产日韩a在线播放| 国产呦精品一区二区三区网站 | 亚洲综合无码一区二区| 日本午夜精品一区二区三区电影 | 国产一区二区三区最好精华液| 成人激情校园春色| 91精品欧美一区二区三区综合在 | 国产盗摄精品一区二区三区在线| 99视频一区二区三区| 91精品国产综合久久福利| 国产日产精品一区| 五月天激情综合网| 91亚洲男人天堂| 久久久久九九视频| 免费不卡在线视频| 欧美亚洲国产bt| 国产精品久久看| 国产一区二区久久| 欧美美女激情18p| 亚洲激情六月丁香| 成人美女在线视频|