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

主頁(yè) > 知識(shí)庫(kù) > Python圖像處理之膨脹與腐蝕的操作

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

熱門標(biāo)簽:鎮(zhèn)江人工外呼系統(tǒng)供應(yīng)商 400電話辦理費(fèi)用收費(fèi) 騰訊地圖標(biāo)注有什么版本 千呼ai電話機(jī)器人免費(fèi) 申請(qǐng)辦個(gè)400電話號(hào)碼 柳州正規(guī)電銷機(jī)器人收費(fèi) 深圳網(wǎng)絡(luò)外呼系統(tǒng)代理商 外呼系統(tǒng)前面有錄音播放嗎 高德地圖標(biāo)注字母

引言

膨脹與腐蝕是圖像處理中兩種最基本的形態(tài)學(xué)操作,膨脹將目標(biāo)點(diǎn)融合到背景中,向外部擴(kuò)展,腐蝕與膨脹意義相反,消除連通的邊界,使邊界向內(nèi)收縮。在本文中我們將了解使用內(nèi)核的圖像膨脹與腐蝕的基本原理。

讓我們開始吧,同樣我們需要導(dǎo)入必需的庫(kù)。

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

首先讓我們創(chuàng)建一個(gè)容易操作的形狀--一個(gè)簡(jiǎn)單的圓。

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

現(xiàn)在讓我們定義一個(gè)內(nèi)核。

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

將腐蝕函數(shù)應(yīng)用到創(chuàng)建的圓上。

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

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

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()

我們可以看到,被腐蝕的圓已經(jīng)略微縮小了。這就是腐蝕一個(gè)對(duì)象的意義。如果我們對(duì)腐蝕函數(shù)進(jìn)行迭代,它的效果會(huì)變得非常明顯。

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()

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

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()

正如我們所看到的,水平和垂直的腐蝕以不同的方式影響著圖像。使用水平內(nèi)核我們得到一個(gè)垂直方向細(xì)長(zhǎng)的圓;而使用垂直內(nèi)核我們得到一個(gè)水平方向細(xì)長(zhǎng)的圓。

你可能會(huì)奇怪,為什么使用垂直內(nèi)核,會(huì)得到一個(gè)水平方向細(xì)長(zhǎng)的圓呢?

因?yàn)楦g函數(shù)是分別尋找垂直和水平的線條,并慢慢把它們削掉。膨脹函數(shù)將會(huì)讓我們更清晰的理解這一點(diǎn)。

使用下面的函數(shù)設(shè)置處理的圖像、膨脹內(nèi)核以及迭代次數(shù)。

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()

可以清楚地看到圓現(xiàn)在已經(jīng)越過了紅線,這清楚地表明它已經(jīng)擴(kuò)大了。現(xiàn)在讓我們對(duì)水平和垂直擴(kuò)張進(jìn)行迭代。

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()

現(xiàn)在可以非常清楚地看到,水平擴(kuò)張?jiān)黾恿藞D像寬度,而垂直擴(kuò)張?jiān)黾恿藞D像高度。

現(xiàn)在我們已經(jīng)了解了膨脹與腐蝕的基本原理,下面來看一個(gè)相對(duì)復(fù)雜的圖像。

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

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

為了得到圓,我們可以先腐蝕垂直的線,再腐蝕水平的線。但要記住最后要對(duì)圖像進(jìn)行膨脹,因?yàn)楦g函數(shù)同樣腐蝕了圓。

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()

為了得到垂直的線,我們可以創(chuàng)建一個(gè)新的內(nèi)核。

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()

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

總結(jié)

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

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python圖像處理之膨脹與腐蝕的操作》,本文關(guān)鍵詞  Python,圖像處理,之,膨脹,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python圖像處理之膨脹與腐蝕的操作》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python圖像處理之膨脹與腐蝕的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久精品一区二区三区不卡| 国产精品亚洲一区二区三区妖精| 91精品在线一区二区| 4438亚洲最大| 26uuu久久综合| 中文字幕的久久| 亚洲一区二区在线视频| 欧美视频一二三区| 欧美午夜精品久久久久久超碰| 天天av天天翘天天综合网 | 91一区二区三区在线播放| 色猫猫国产区一区二在线视频| 欧美老女人在线| 欧美经典一区二区| 性做久久久久久久免费看| 国产一区二区0| 欧美日韩一级片网站| 中文字幕一区不卡| 亚洲精品国产第一综合99久久 | 亚洲成人综合在线| 国产一区二区三区在线看麻豆| 色就色 综合激情| 国产日韩欧美不卡在线| 奇米四色…亚洲| 色婷婷国产精品| 亚洲福利一区二区| 欧美国产一区在线| 91美女视频网站| 欧美肥妇free| 亚洲精品v日韩精品| 国内成人免费视频| 欧美日韩国产首页| 亚洲精品综合在线| 国产精品影视网| 日韩欧美国产三级电影视频| 亚洲国产一区二区在线播放| 99久久精品国产观看| 日韩欧美国产高清| 免费观看91视频大全| 欧美日韩精品一区二区天天拍小说| 国产精品久久夜| 国产成人精品免费视频网站| 精品乱人伦一区二区三区| 日本欧美一区二区三区| 亚洲韩国精品一区| 日韩欧美亚洲另类制服综合在线| 成人手机在线视频| 一级日本不卡的影视| 26uuu国产一区二区三区| 高清视频一区二区| 日韩av高清在线观看| 国产精品的网站| 欧美日韩二区三区| 9久草视频在线视频精品| 日韩精品一区二| 婷婷久久综合九色综合绿巨人| 色悠悠久久综合| 亚洲人成小说网站色在线 | 欧美在线免费视屏| 伊人夜夜躁av伊人久久| 在线免费观看一区| 亚洲第一av色| 日韩一卡二卡三卡四卡| 免费一区二区视频| 欧美精品一区二区在线观看| 国产美女娇喘av呻吟久久| 26uuu国产日韩综合| 韩国一区二区三区| 国产精品欧美经典| 91在线丨porny丨国产| 亚洲视频香蕉人妖| 一本高清dvd不卡在线观看| 欧美喷水一区二区| bt欧美亚洲午夜电影天堂| 国精产品一区一区三区mba桃花 | 亚洲欧美综合另类在线卡通| 不卡一区二区三区四区| 一区二区三区资源| 欧美另类久久久品| 国产酒店精品激情| 国产精品久久久久久久久图文区 | 一区二区三区中文字幕精品精品 | 一区二区久久久| 欧美日韩在线精品一区二区三区激情 | 全部av―极品视觉盛宴亚洲| 亚洲人成人一区二区在线观看| 亚洲图片你懂的| 五月婷婷欧美视频| 韩国女主播成人在线| 99久久精品99国产精品 | 不卡一二三区首页| 美女被吸乳得到大胸91| 婷婷开心久久网| 欧美成人一区二区三区片免费| 国产成人亚洲综合色影视| 中文字幕一区免费在线观看| 在线观看91视频| 韩国在线一区二区| 亚洲精品国产视频| 久久久一区二区| 91福利在线看| 精品一区二区三区香蕉蜜桃| 亚洲蜜桃精久久久久久久| 日韩精品中文字幕在线一区| 99精品久久只有精品| 在线观看国产精品网站| 在线免费不卡视频| 午夜精品福利一区二区三区av| 蜜臂av日日欢夜夜爽一区| 国产午夜精品美女毛片视频| 色av成人天堂桃色av| 国产精品毛片无遮挡高清| 91丨porny丨蝌蚪视频| 美日韩一区二区| 亚洲欧美偷拍另类a∨色屁股| 日韩女优视频免费观看| 91亚洲国产成人精品一区二三| 麻豆91在线播放免费| 亚洲综合无码一区二区| 国产欧美一区二区在线| 日韩美女在线视频| 精品视频一区二区不卡| 精品无人码麻豆乱码1区2区| 午夜精品福利一区二区蜜股av| 国产精品久久夜| 国产欧美va欧美不卡在线| 欧美成人福利视频| 911精品产国品一二三产区| 色成人在线视频| 日韩中文字幕不卡| 亚洲国产精品久久不卡毛片 | 欧美精品tushy高清| 中文字幕人成不卡一区| 91亚洲大成网污www| 日本午夜精品视频在线观看 | 在线亚洲高清视频| www.日韩在线| 成人一道本在线| 韩国毛片一区二区三区| 久久久久久久久一| 99精品国产视频| 亚洲愉拍自拍另类高清精品| 成人黄色一级视频| 一区二区日韩电影| 亚洲精品视频在线观看网站| 国产精品主播直播| 国产精品麻豆视频| 色欧美乱欧美15图片| 一区二区三区蜜桃| 精品久久久久久久久久久久久久久 | 91精品国产色综合久久不卡蜜臀 | 国产a级毛片一区| 欧美精品一卡二卡| 欧美亚洲图片小说| 欧美日韩在线三级| 欧美电影一区二区三区| 日韩亚洲欧美综合| 久久综合色综合88| 亚洲国产成人一区二区三区| 成人免费小视频| 欧美一区二区三区视频免费播放 | 日韩免费在线观看| 欧美性欧美巨大黑白大战| 岛国一区二区三区| 国产精品一二三四| 琪琪久久久久日韩精品| 亚洲成人精品影院| 国产亚洲一区字幕| 免费xxxx性欧美18vr| 久久网这里都是精品| 99国产精品久久久| 成人午夜电影小说| 91丨九色丨尤物| 欧美日韩亚洲另类| 久久亚洲综合av| 国产精品久久久久婷婷二区次| 亚洲女同女同女同女同女同69| 午夜久久久久久久久| 韩国av一区二区| 色综合天天视频在线观看| 国内成+人亚洲+欧美+综合在线 | 精品一区二区三区不卡| 国产精品每日更新在线播放网址| 久久视频一区二区| 18涩涩午夜精品.www| 五月天欧美精品| 国产福利电影一区二区三区| 国产乱国产乱300精品| 国产**成人网毛片九色| 91精品国产综合久久精品| 欧美精品久久99久久在免费线 | 欧美在线视频日韩| 日韩一级大片在线观看| 国产欧美一区二区三区在线看蜜臀| 日本一区二区三区在线不卡| 亚洲国产一二三| 亚洲成人动漫av| 99久久久无码国产精品| 美女尤物国产一区| 国产一区二区电影|