Python机器学习(六十一)SciPy 图像处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python机器学习(六十一)SciPy 图像处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2136字,纯文字阅读大概需要4分钟。
内容图文
图像处理和分析通常被看作是对二维值数组的操作。然而,在一些领域中,必须对高维数的图像进行处理分析,例如,医学成像和生物成像。由于对多维特性的良好支持,numpy非常适合这种类型的应用程序。scipy.ndimage包提供了许多通用的图像处理和分析功能,这些功能支持操作任意维度的数组。
scipy.ndimage中提供了图像矩阵变换、图像滤波、图像卷积等功能。
旋转图片
旋转图片,可以使用ndimage.rotate函数。
测试图片下载: face.png
示例
加载原图片
from scipy import ndimage import matplotlib.image as mpimg import matplotlib.pyplot as plt # 加载图片 face = mpimg.imread(‘./face.png‘) # 显示图片plt.imshow(face) # plt.savefig(‘./img2-1.png‘) # 保存要显示的图片 plt.show()
输出
示例
from scipy import ndimage import matplotlib.image as mpimg import matplotlib.pyplot as plt # 加载图片 face = mpimg.imread(‘./face.png‘) # 旋转图片 rotate_face = ndimage.rotate(face, 45) plt.imshow(rotate_face) # plt.savefig(‘./img3-1.png‘) # 保存要显示的图片 plt.show()
输出
图像滤波
图像滤波是一种修改/增强图像的技术。例如,可以图像滤波突出图像的某些特性,弱化或删除图像的另一些特性。滤波有很多种,例如:平滑、锐化、边缘增强等等。
示例
对图像进行高斯滤波。高斯滤波是一种模糊滤波,广泛用于滤除图像噪声。
from scipy import ndimage import matplotlib.image as mpimg import matplotlib.pyplot as plt # 加载图片 face = mpimg.imread(‘./face.png‘) # 处理图片 face1 = ndimage.gaussian_filter(face, sigma=3) # 显示图片plt.imshow(face1) # plt.savefig(‘./img4-1.png‘) # 保存要显示的图片 plt.show()
输出
sigma=3
表示模糊程度为3,我们可以通过调整sigma值,来比较图像质量的变化。
边缘检测
边缘检测是一种寻找图像中物体边界的图像处理技术。它的原理是通过检测图像中的亮度突变,来识别物体边缘。边缘检测在图像处理、计算机视觉、机器视觉等领域中广泛应用。
常用边缘检测算法包括:
- Sobel
- Canny
- Prewitt
- Roberts
- Fuzzy Logic methods
让我们考虑下面的例子。
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 = nd.gaussian_filter(im, 8) import matplotlib.pyplot as plt plt.imshow(im) # plt.savefig(‘./img5-1.png‘) # 保存要显示的图片 plt.show()
上面的程序将生成以下输出。
图像看起来像一个正方形的色块,我们将检测这些彩色块的边缘。这里使用ndimage的Sobel函数来检测图像边缘,该函数会对图像数组的每个轴分开操作,产生两个矩阵,然后我们使用NumPy中的Hypot函数将这两个矩阵合并为一个矩阵,得到最后结果。
示例
import scipy.ndimage as nd import numpy as np import matplotlib.pyplot as plt im = np.zeros((256, 256)) im[64:-64, 64:-64] = 1 im[90:-90,90:-90] = 2 im = nd.gaussian_filter(im, 8) sx = nd.sobel(im, axis = 0, mode = ‘constant‘) sy = nd.sobel(im, axis = 1, mode = ‘constant‘) sob = np.hypot(sx, sy) plt.imshow(sob) # plt.savefig(‘./img6-1.png‘) # 保存要显示的图片 plt.show()
上面的程序将生成以下输出。
原文:https://www.cnblogs.com/huanghanyu/p/13170578.html
内容总结
以上是互联网集市为您收集整理的Python机器学习(六十一)SciPy 图像处理全部内容,希望文章能够帮你解决Python机器学习(六十一)SciPy 图像处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。