欢迎访问宙启技术站
智能推送

使用skimage.filters模块进行图像模糊处理

发布时间:2023-12-16 15:07:05

skimage.filters模块是scikit-image库中的一个子模块,提供了一些常用的图像滤波函数,包括图像平滑、边缘检测等操作。下面将介绍该模块的使用方法,并给出一个简单的例子。

首先,我们需要导入必要的包:

import numpy as np
import matplotlib.pyplot as plt
from skimage import io, filters

接下来,我们可以使用skimage.io模块中的函数来加载图像:

image = io.imread('image.png')

然后,我们可以使用skimage.filters模块中的函数对图像进行滤波操作。下面介绍几个常用的函数:

1. gaussian():高斯模糊

blurred = filters.gaussian(image, sigma=1.5)

2. median():中值模糊

blurred = filters.median(image, selem=np.ones((3, 3)))

3. sobel():边缘检测

edges = filters.sobel(image)

最后,我们可以将原图像和滤波后的图像显示出来,以便观察效果:

fig, axes = plt.subplots(1, 2, figsize=(8, 4))
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original')
axes[1].imshow(blurred, cmap='gray')
axes[1].set_title('Blurred')
for ax in axes:
    ax.axis('off')
plt.show()

下面是完整的示例代码:

import numpy as np
import matplotlib.pyplot as plt
from skimage import io, filters

image = io.imread('image.png')

blurred = filters.gaussian(image, sigma=1.5)

fig, axes = plt.subplots(1, 2, figsize=(8, 4))
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original')
axes[1].imshow(blurred, cmap='gray')
axes[1].set_title('Blurred')
for ax in axes:
    ax.axis('off')
plt.show()

这段代码加载了名为'image.png'的图像,对其进行高斯模糊,并将原图像和模糊后的图像显示在一起。

这只是skimage.filters模块的一小部分功能。你还可以尝试其他函数,进行边缘检测、锐化、噪声去除等操作。希望这个例子对你有帮助!