SciPy 提供了 ndimage(n维图像)包,其中包含许多用于通用图像处理和分析的函数。它专用于图像处理。我们可以执行图像处理中的多种任务,如图像的输入/输出、分类、特征提取、注册等。

打开和写入图像文件

scipy.ndimage 提供了 misc 包,其中包含一些图像。我们将使用这些图像并进行图像操作。考虑以下示例:

from scipy import misc  
f = misc.face()  
misc.imsave('face.jpg', f)  
import matplotlib.pyplot as plt  
plt.imshow(f)  
plt.show()  

输出:

11-1.png

矩阵中的数字代表图像及其颜色组合。机器使用这些数字进行操作。表示图像有两种方式:灰度和 RGB。RGB 是最流行的表示方式。

我们可以执行一些基本操作,例如图像旋转、图像上下翻转。考虑以下图像上下翻转的示例:

from scipy import misc  
face = misc.face()  
flip_ud_face = np.flipud(face)  
import matplotlib.pyplot as plt  
plt.imshow(flip_ud_face)  
plt.show()  

输出:

11-2.png

SciPy 提供了 rotate() 函数,它可以将图像旋转到指定角度。

from scipy import misc,ndimage  
face = misc.face()  
rotate_face = ndimage.rotate(face, 30) #rotating the image 30 degree  
import matplotlib.pyplot as plt  
plt.imshow(rotate_face)  
plt.show()  

输出:

11-3.png

过滤器

过滤是指修改和增强图像的过程。例如,过滤器可以应用于图像以突出显示某些特征或消除其他特征。使用过滤器实现的图像处理操作包括平滑和边缘增强。考虑使用 SciPy ndimage 进行的以下操作。

  • 模糊

模糊是一种用于减少图像中噪声的技术。我们可以执行过滤器操作并观察图像的变化。以下是一个示例:

from scipy import misc  
from scipy import ndimage  
face = misc.face()  
blurred_image = ndimage.gaussian_filter(face, sigma=4)  
import matplotlib.pyplot as plt  
plt.imshow(blurred_face)  
plt.show()  

输出:

11-4.png

sigma 值表示五级尺度上的模糊程度。您可以更改 sigma 值并查看差异。

  • 边缘检测

边缘检测是图像处理术语,用于在图像中找到对象的边界。它用于图像处理、计算机视觉和机器视觉领域的图像分割和数据提取。

考虑以下示例:

import scipy.ndimage as nd  
import numpy as np  
im = np.zeros((256, 256))  
im[64:-64, 64:-64] = 1  
im[90:-90,90:-90] = 2  
im = ndimage.gaussian_filter(im, 10)  
import matplotlib.pyplot as plt  
plt.imshow(im)  
plt.show()  

输出:

11-5.png

输出图像看起来像一个彩色方块。现在,我们将找到这些彩色块的边缘。ndimage 提供了 sobel() 函数来执行此操作。而 NumPy 提供了 hypot() 函数,用于将两个结果矩阵合并为一个。考虑以下示例:

import scipy.ndimage as nd  
import matplotlib.pyplot as plt  
im = np.zeros((256, 256))  
im[64:-64, 64:-64] = 1  
im[90:-90,90:-90] = 2  
im = ndimage.gaussian_filter(im, 8)  
zx = ndimage.sobel(im, axis = 0, mode = 'constant')  
zy = ndimage.sobel(im, axis = 1, mode = 'constant')  
sobl = np.hypot(zx, zy)  
plt.imshow(sobl)  
plt.show()  

输出:

11-6.png

标签: Scipy, Scipy学习, Scipy教程, Scipy下载, Scipy指南, Scipy基础教程, Scipy使用指南, Scipy库, Scipy入门, Scipy进阶, Scipy模块, Scipy安装教程