利用scipy.ndimage.binary_fill_hoses提取标记轮廓的mask-20201025

根据刘博记录如何提取标记内的mask,中间是自己的理解过程,可删除精简。

import numpy as np
import matplotlib.pyplot as plt
import skimage.io as io
import scipy

def marker_color(color='yellow'):
    return [255, 242, 0]

img = io.imread('./8_2.png')[...,0:3]
mask1 = np.all(np.array([255, 242, 0]) - 40 < img, axis=-1)
plt.imshow(mask1)
plt.show()
mask2 = np.all(np.array([255, 242, 0]) + 40 > img, axis=-1)
plt.imshow(mask2)
plt.show()
mask = np.logical_and(mask1, mask2)
plt.imshow(mask)
plt.show()
mask = scipy.ndimage.binary_fill_holes(mask)
plt.imshow(mask)
plt.show()

fig,axes = plt.subplots(1,2,figsize=(10,5))
axes[0].imshow(img)
axes[1].imshow(mask, cmap='gray')
plt.show()
io.imsave('tmp.png', mask*255)
### 回答1: scipy.ndimage.gaussian_filter是一个用于对图像进行高斯滤波的函数。高斯滤波是一种常用的图像处理方法,可以用于去除图像中的噪声,平滑图像,以及检测图像中的边缘等。该函数可以接受多种参数,包括输入图像,高斯核的大小和标 ### 回答2: scipy.ndimage.gaussian_filter是一个用于处理多维数组的函数,它可以对数据进行高斯滤波,可以使一些多噪声的图像或数据产生更为平滑的效果。此函数实现了一个高斯核,该高斯核可对输入数据进行卷积,并返回卷积后的结果。具体而言,该函数实现了一些用于映射的算法和数学公式,使得它能够滤除图像数据中的高频噪声,并将数据还原到原始图像的状态。在处理某些图像或数据时,我们需要对其进行平滑处理,以减少噪声对其产生的影响。高斯滤波是解决这一问题的一种常见方法。 该函数的参数有input(要进行高斯滤波的数组),sigma(高斯分布的标准差,调整滤波效果)和指定卷积核形状的order(整数值,指定卷积核的形状,默认为0,表示输出结果和输入数组大小相同)等等。例如,可以使用以下代码来对一个二维图像进行平滑处理: ```python import scipy.ndimage as ndi import numpy as np import matplotlib.pyplot as plt # 读入一个图像 img = plt.imread('example.png') # 进行高斯滤波 img_smoothed = ndi.gaussian_filter(img, sigma=3) # 绘制原图和平滑处理后的图像 fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(8, 5)) axes[0].imshow(img, cmap='gray') axes[0].set_title('Original image') axes[1].imshow(img_smoothed, cmap='gray') axes[1].set_title('Smoothed image') for ax in axes: ax.axis('off') plt.show() ``` 通过这段代码,我们可以看到原始图像和平滑处理后的图像,并且可以看到平滑处理对噪声的消除效果。因此,该函数在图像处理和信号处理等领域中具有重要的应用价值。 ### 回答3: scipy.ndimage.gaussian_filter是一个功能强大的图像处理函数,用于对2D和3D图像进行高斯滤波。高斯滤波是一种通过降低图像噪声和增强图像特征的常用滤波方法。 高斯滤波器使用一组可调参数,称为方差,用于指定滤波器的平滑程度。较高的方差会导致更模糊的图像,而较低的方差则会保留更多的细节。因此,scipy.ndimage.gaussian_filter函数的主要作用是模糊或平滑输入图像。 在输入图像中,高斯滤波器通过在像素周围使用高斯核对像素进行加权平均来实现平滑。这意味着像素周围较远的像素将获得较小的权重,而像素周围较近的像素将获得较大的权重。因此,高斯滤波器可使近似于常数的局部像素变得平滑,同时保留像素之间的细节差异。 除了模糊图像之外,scipy.ndimage.gaussian_filter函数还可用于检测边缘或者图像中的关键点特征,以及增强边缘检测算法的效果。这些应用需要在高斯滤波器的不同方向和大小方面进行调整。 总之,scipy.ndimage.gaussian_filter函数是一个功能强大的图像处理函数,可用于图像模糊和平滑,检测特征和优化边缘检测算法的效果。对于需要对图像进行过滤和增强的应用程序,它是一个非常有用的函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值