亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Python圖像處理之膨脹與腐蝕的操作

Python圖像處理之膨脹與腐蝕的操作

熱門標簽:鎮江人工外呼系統供應商 400電話辦理費用收費 騰訊地圖標注有什么版本 千呼ai電話機器人免費 申請辦個400電話號碼 柳州正規電銷機器人收費 深圳網絡外呼系統代理商 外呼系統前面有錄音播放嗎 高德地圖標注字母

引言

膨脹與腐蝕是圖像處理中兩種最基本的形態學操作,膨脹將目標點融合到背景中,向外部擴展,腐蝕與膨脹意義相反,消除連通的邊界,使邊界向內收縮。在本文中我們將了解使用內核的圖像膨脹與腐蝕的基本原理。

讓我們開始吧,同樣我們需要導入必需的庫。

import numpy as np
import matplotlib.pyplot as plt
from skimage.io import imread, imshow
from skimage.draw import circle
from skimage.morphology import erosion, dilation

首先讓我們創建一個容易操作的形狀--一個簡單的圓。

circ_image = np.zeros((100, 100))
circ_image[circle(50, 50, 25)] = 1
imshow(circ_image);

現在讓我們定義一個內核。

cross = np.array([[0,1,0],
   [1,1,1],
   [0,1,0]])
imshow(cross, cmap = 'gray');

將腐蝕函數應用到創建的圓上。

eroded_circle = erosion(circ_image, cross)
imshow(eroded_circle);

圖像看起來幾乎一模一樣。要看到那些微小的差異,我們必須仔細查看圖像。

linecolor = 'red'
fig, ax = plt.subplots(1, 2, figsize=(12, 5))
ax[0].imshow(circ_image, cmap = 'gray');
ax[0].set_title('Original', fontsize = 19)
ax[0].axvline(x = 25, color = linecolor)
ax[0].axvline(x = 75, color = linecolor)
ax[0].axhline(y = 25, color = linecolor)
ax[0].axhline(y = 75, color = linecolor)
ax[1].imshow(eroded_circle, cmap = 'gray');
ax[1].set_title('Eroded', fontsize = 19)
ax[1].axvline(x = 25, color = linecolor)
ax[1].axvline(x = 75, color = linecolor)
ax[1].axhline(y = 25, color = linecolor)
ax[1].axhline(y = 75, color = linecolor)
fig.tight_layout()

我們可以看到,被腐蝕的圓已經略微縮小了。這就是腐蝕一個對象的意義。如果我們對腐蝕函數進行迭代,它的效果會變得非常明顯。

def multi_erosion(image, kernel, iterations):
 for i in range(iterations):
 image = erosion(image, kernel)
 return image
ites = [2,4,6,8,10,12,14,16,18,20]
fig, ax = plt.subplots(2, 5, figsize=(17, 5))
for n, ax in enumerate(ax.flatten()):
 ax.set_title(f'Iterations : {ites[n]}', fontsize = 16)
 new_circle = multi_erosion(circ_image, cross, ites[n])
 ax.imshow(new_circle, cmap = 'gray');
 ax.axis('off')
fig.tight_layout()

上圖清楚地顯示了圖像是如何被腐蝕的。現在讓我們嘗試改變內核,如果我們使用水平線和垂直線內核代替交叉內核會怎樣呢?

h_line = np.array([[0,0,0],
   [1,1,1],
   [0,0,0]])
v_line = np.array([[0,1,0],
   [0,1,0],
   [0,1,0]])
fig, ax = plt.subplots(1, 2, figsize=(15, 5))
ax[0].imshow(h_line, cmap='gray');
ax[1].imshow(v_line, cmap='gray');
fig.tight_layout()

ites = [2,4,6,8,10,12,14,16,18,20]
fig, ax = plt.subplots(2, 5, figsize=(17, 5))
for n, ax in enumerate(ax.flatten()):
 ax.set_title(f'Horizontal Iterations : {ites[n]}', fontsize = 12)
 new_circle = multi_erosion(circ_image, h_line, ites[n])
 ax.imshow(new_circle, cmap = 'gray');
 ax.axis('off')
fig.tight_layout()
fig, ax = plt.subplots(2, 5, figsize=(17, 5))
for n, ax in enumerate(ax.flatten()):
 ax.set_title(f'Vertical Iterationss : {ites[n]}', fontsize = 12)
 new_circle = multi_erosion(circ_image, v_line, ites[n])
 ax.imshow(new_circle, cmap = 'gray');
 ax.axis('off')
fig.tight_layout()

正如我們所看到的,水平和垂直的腐蝕以不同的方式影響著圖像。使用水平內核我們得到一個垂直方向細長的圓;而使用垂直內核我們得到一個水平方向細長的圓。

你可能會奇怪,為什么使用垂直內核,會得到一個水平方向細長的圓呢?

因為腐蝕函數是分別尋找垂直和水平的線條,并慢慢把它們削掉。膨脹函數將會讓我們更清晰的理解這一點。

使用下面的函數設置處理的圖像、膨脹內核以及迭代次數。

def multi_dilation(image, kernel, iterations):
 for i in range(iterations):
 image = dilation(image, kernel)
 return image

讓我們看一下處理后的圖像有什么不同。

dilated_circle = multi_dilation(circ_image, cross, 1)
linecolor = 'red'
fig, ax = plt.subplots(1, 2, figsize=(12, 5))
ax[0].imshow(circ_image, cmap = 'gray');
ax[0].set_title('Original', fontsize = 19)
ax[0].axvline(x = 25, color = linecolor)
ax[0].axvline(x = 75, color = linecolor)
ax[0].axhline(y = 25, color = linecolor)
ax[0].axhline(y = 75, color = linecolor)
ax[1].imshow(dilated_circle, cmap = 'gray');
ax[1].set_title('Dilated', fontsize = 19)
ax[1].axvline(x = 25, color = linecolor)
ax[1].axvline(x = 75, color = linecolor)
ax[1].axhline(y = 25, color = linecolor)
ax[1].axhline(y = 75, color = linecolor)
fig.tight_layout()

可以清楚地看到圓現在已經越過了紅線,這清楚地表明它已經擴大了。現在讓我們對水平和垂直擴張進行迭代。

ites = [2,4,6,8,10,12,14,16,18,20]
fig, ax = plt.subplots(2, 5, figsize=(17, 5))
for n, ax in enumerate(ax.flatten()):
 ax.set_title(f'Horizontal Iterations : {ites[n]}', fontsize = 
   12)
 new_circle = multi_dilation(circ_image, h_line, ites[n])
 ax.imshow(new_circle, cmap = 'gray');
 ax.axis('off')
fig.tight_layout()
fig, ax = plt.subplots(2, 5, figsize=(17, 5))
for n, ax in enumerate(ax.flatten()):
 ax.set_title(f'Vertical Iterationss : {ites[n]}', fontsize = 12)
 new_circle = multi_dilation(circ_image, v_line, ites[n])
 ax.imshow(new_circle, cmap = 'gray');
 ax.axis('off')
fig.tight_layout()

現在可以非常清楚地看到,水平擴張增加了圖像寬度,而垂直擴張增加了圖像高度。

現在我們已經了解了膨脹與腐蝕的基本原理,下面來看一個相對復雜的圖像。

complex_image = imread('complex_image.png')
imshow(complex_image);

在上面的圖像中,我們看到了水平線、垂直線和圓的混合物。我們可以使用膨脹和腐蝕函數孤立地觀察每一種形狀。

為了得到圓,我們可以先腐蝕垂直的線,再腐蝕水平的線。但要記住最后要對圖像進行膨脹,因為腐蝕函數同樣腐蝕了圓。

step_1 = multi_erosion(complex_image, h_line,3)
step_2 = multi_erosion(step_1, v_line,3)
step_3 = multi_dilation(step_2, h_line,3)
step_4 = multi_dilation(step_3, v_line,3)
steps = [step_1, step_2, step_3, step_4]
names = ['Step 1', 'Step 2', 'Step 3', 'Step 4']
fig, ax = plt.subplots(2, 2, figsize=(10, 10))
for n, ax in enumerate(ax.flatten()):
 ax.set_title(f'{names[n]}', fontsize = 22)
 ax.imshow(steps[n], cmap = 'gray');
 ax.axis('off')
fig.tight_layout()

同樣,下面的代碼將得到水平的線。

step_1 = multi_erosion(complex_image, cross, 20)
step_2 = multi_dilation(step_1, h_line, 20)
step_3 = multi_dilation(step_2, v_line,2)
steps = [step_1, step_2, step_3]
names = ['Step 1', 'Step 2', 'Step 3']
fig, ax = plt.subplots(1, 3, figsize=(10, 10))
for n, ax in enumerate(ax.flatten()):
 ax.set_title(f'{names[n]}', fontsize = 22)
 ax.imshow(steps[n], cmap = 'gray');
 ax.axis('off')
fig.tight_layout()

為了得到垂直的線,我們可以創建一個新的內核。

long_v_line = np.array([[0,1,0],
   [0,1,0],
   [0,1,0],
   [0,1,0],
   [0,1,0]])
step_1 = multi_erosion(complex_image, long_v_line, 10)
step_2 = multi_dilation(step_1 ,long_v_line, 10)
steps = [step_1, step_2]
names = ['Step 1', 'Step 2']
fig, ax = plt.subplots(1, 2, figsize=(10, 10))
for n, ax in enumerate(ax.flatten()):
 ax.set_title(f'{names[n]}', fontsize = 22)
 ax.imshow(steps[n], cmap = 'gray');
 ax.axis('off')
fig.tight_layout()

注意,內核并不局限于本文中提到的這幾種,可以根據不同的需求自己定義合適的內核。

總結

內核腐蝕和膨脹是圖像處理領域需要理解的基本概念。它們甚至可能是任何圖像處理模塊的第一課。直觀地理解它們將是你以后在這個領域成功的關鍵。

到此這篇關于Python圖像處理之膨脹與腐蝕的操作的文章就介紹到這了,更多相關Python圖像膨脹與腐蝕內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 2021年最新用于圖像處理的Python庫總結
  • python圖像處理基本操作總結(PIL庫、Matplotlib及Numpy)
  • Python圖像處理之圖像拼接
  • python數字圖像處理之估計噪聲參數
  • python opencv圖像處理(素描、懷舊、光照、流年、濾鏡 原理及實現)
  • 基于python的opencv圖像處理實現對斑馬線的檢測示例
  • Python圖像處理之圖片拼接和堆疊案例教程

標簽:烏蘭察布 平頂山 海南 烏蘭察布 哈爾濱 合肥 大慶 郴州

巨人網絡通訊聲明:本文標題《Python圖像處理之膨脹與腐蝕的操作》,本文關鍵詞  Python,圖像處理,之,膨脹,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python圖像處理之膨脹與腐蝕的操作》相關的同類信息!
  • 本頁收集關于Python圖像處理之膨脹與腐蝕的操作的相關信息資訊供網民參考!
  • 推薦文章
    国产精品1024永久免费视频 | 欧美日本国产| 台湾毛片| 亚洲不卡一区二区三区在线| 国产成人精品综合| 欧美国产日韩一区二区三区| 亚洲第一页乱| 台湾毛片| 中文字幕一区二区三区 精品| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美国产日韩精品| 国产视频久久久久| 高清一级片| 天天做日日爱夜夜爽| 成人在免费观看视频国产| 成人在激情在线视频| 国产不卡在线观看| 欧美激情影院| 国产网站麻豆精品视频| 午夜激情视频在线观看| 国产原创视频在线| 精品国产香蕉在线播出| 可以免费看毛片的网站| 日本特黄特色aa大片免费| 九九精品影院| 青草国产在线观看| 成人免费一级纶理片| 国产麻豆精品免费密入口| 国产成人精品影视| 国产精品自拍在线观看| 国产高清在线精品一区a| 亚洲天堂一区二区三区四区| 久久精品免视看国产成人2021| 国产综合成人观看在线| 久久国产影院| 精品国产一区二区三区国产馆| 精品视频免费看| 欧美国产日韩在线| 国产不卡福利| 国产高清在线精品一区二区 | 亚洲wwwwww| 午夜激情视频在线观看| 亚飞与亚基在线观看| 久草免费在线视频| 午夜精品国产自在现线拍| 青青久久精品国产免费看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 一级女性全黄久久生活片| 黄视频网站免费| 精品视频在线看 | 日本特黄特色aa大片免费| 国产原创视频在线| 亚欧视频在线| 亚洲www美色| 国产综合91天堂亚洲国产| 国产麻豆精品免费视频| 精品视频在线观看一区二区| 韩国三级香港三级日本三级| 香蕉视频久久| 精品国产亚洲一区二区三区| 精品国产三级a| a级毛片免费全部播放| 日韩中文字幕在线播放| 精品国产亚洲一区二区三区| 日日爽天天| 精品久久久久久免费影院| 精品视频在线观看视频免费视频| 国产成a人片在线观看视频| 天天做人人爱夜夜爽2020毛片| 亚洲www美色| 亚洲女初尝黑人巨高清在线观看| 国产一区二区精品在线观看| 天天做人人爱夜夜爽2020毛片| 国产美女在线观看| 99久久精品国产高清一区二区| 国产一区二区精品| 韩国三级视频网站| 国产麻豆精品免费密入口| 国产激情一区二区三区| 日韩在线观看视频免费| 香蕉视频亚洲一级| 国产美女在线观看| 日韩在线观看视频黄| 亚欧成人毛片一区二区三区四区| 你懂的日韩| 日本免费区| 日本在线www| 九九九国产| 精品视频免费看| 九九九国产| 成人影院久久久久久影院| 欧美激情伊人| 台湾美女古装一级毛片| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品国产三级a| 999精品影视在线观看| 你懂的日韩| 成人免费高清视频| 欧美激情一区二区三区在线| 午夜精品国产自在现线拍| 午夜欧美成人香蕉剧场| 精品国产亚一区二区三区| 香蕉视频久久| a级毛片免费全部播放| 黄色短视屏| 成人免费高清视频| 精品国产香蕉在线播出 | 国产伦精品一区二区三区在线观看| 999精品在线| 欧美一级视频免费观看| a级毛片免费全部播放| 欧美激情影院| 午夜激情视频在线观看| 色综合久久久久综合体桃花网| 欧美激情一区二区三区视频高清| 99热热久久| 国产精品免费久久| 成人免费一级纶理片| 欧美电影免费| 午夜在线影院| 国产视频久久久久| 免费国产在线视频| 一本伊大人香蕉高清在线观看| 国产91素人搭讪系列天堂| 二级特黄绝大片免费视频大片| 四虎久久精品国产| 欧美18性精品| 尤物视频网站在线观看| 青青青草影院 | 九九精品久久久久久久久| 沈樵在线观看福利| 国产精品1024永久免费视频 | 日韩在线观看免费完整版视频| 久久福利影视| 久久精品成人一区二区三区| 色综合久久天天综合绕观看| 亚洲 国产精品 日韩| 日韩欧美一及在线播放| 亚州视频一区二区| 黄视频网站免费| 欧美电影免费| 久久国产影视免费精品| 国产精品自拍亚洲| 精品视频免费观看| 黄视频网站在线看| 999精品在线| 夜夜操网| 国产极品精频在线观看| 成人a级高清视频在线观看| 999精品影视在线观看| 中文字幕一区二区三区 精品| 在线观看成人网 | 久久国产影院| 精品国产一区二区三区免费| 精品国产三级a| 久久国产精品自由自在| 夜夜操网| 日韩av东京社区男人的天堂| 高清一级片| 91麻豆爱豆果冻天美星空| 国产精品自拍亚洲| 精品国产一区二区三区精东影业| 国产成人欧美一区二区三区的| 91麻豆精品国产高清在线| 免费国产在线观看| 国产91丝袜在线播放0| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产视频一区二区在线播放| 国产精品1024永久免费视频| 久久久久久久久综合影视网| 九九国产| 在线观看导航| 一级女性大黄生活片免费| 青青青草影院 | 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产不卡在线观看| 国产麻豆精品hdvideoss| 欧美另类videosbestsex久久| 精品视频在线看 | 中文字幕Aⅴ资源网| 欧美1卡一卡二卡三新区| 一本高清在线| 免费国产在线观看| 久久99青青久久99久久| 美女免费精品高清毛片在线视| 精品毛片视频| 久久成人亚洲| 一级片片| 日韩av成人| 国产激情一区二区三区| 久久精品大片| 日日日夜夜操| 成人免费高清视频| 美女免费毛片| 欧美激情一区二区三区视频| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产高清在线精品一区二区 | 91麻豆tv| 午夜欧美福利| 一级毛片视频播放|