scikit-image库-- 过滤区域最大值(三)

試著忘記壹切 提交于 2019-11-27 00:13:43

过滤区域最大值

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from scipy.ndimage import gaussian_filter
from skimage import data
from skimage import img_as_float
from skimage.morphology import reconstruction

# Convert to float: Important for subtraction later which won't work with uint8
image = img_as_float(data.coins())
image = gaussian_filter(image, 1)

seed = np.copy(image)
seed[1:-1, 1:-1] = image.max()
mask = image

seed1 = np.copy(image)
seed1[1:-1, 1:-1] = image.min()

erosion = reconstruction(seed, mask, method='erosion')
'''
reconstruction(seed, mask, method='dilation', selem=None, offset=None)
erosion(腐蚀) seed 种子图像值必须大于mask值  腐蚀本质选取领域最小值,降低图像高亮区域
dilation (膨胀) seed种子图像值必须小于 mask值  膨胀本质选取区域最大值, 增加图像高亮区域
 '''
dilation=reconstruction(seed1, mask,method='dilation')

画图

fig = plt.figure(figsize=(18, 5))
axes = np.zeros((1, 3), dtype=np.object)
axes[0,0]=plt.subplot(1,3,1)

axes[0,1]=plt.subplot(1,3,2)
axes[0,2]=plt.subplot(1,3,3)
axes[0,0].imshow(dilation, 'gray')
axes[0,0].set_title('dilation')
axes[0,1].imshow(erosion, 'gray')
axes[0,1].set_title('erosion')
axes[0,2].imshow(image1,'gray')
axes[0,2].set_title('ground')
plt.show()

在这里插入图片描述

image=image1-dilation  #原图减去膨胀后的图
plot.imshow(image)

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!