加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

10个Python图像编辑工具

发布时间:2019-04-04 18:15:33 所属栏目:优化 来源:Parul Pandey
导读:以下提到的这些 Python 工具在编辑图像、操作图像底层数据方面都提供了简单直接的方法。 当今的世界充满了数据,而图像数据就是其中很重要的一部分。但只有经过处理和分析,提高图像的质量,从中提取出有效地信息,才能利用到这些图像数据。 常见的图像处
副标题[/!--empirenews.page--]

http://developer.51cto.com/art/201904/https:/s4.51cto.com/oss/201904/03/1770ee11d115ce7e32a6f62e1e99b39b.jpeg-wh_651x-s_3673897412.jpeg

以下提到的这些 Python 工具在编辑图像、操作图像底层数据方面都提供了简单直接的方法。

当今的世界充满了数据,而图像数据就是其中很重要的一部分。但只有经过处理和分析,提高图像的质量,从中提取出有效地信息,才能利用到这些图像数据。

常见的图像处理操作包括显示图像,基本的图像操作,如裁剪、翻转、旋转;图像的分割、分类、特征提取;图像恢复;以及图像识别等等。Python 作为一种日益风靡的科学编程语言,是这些图像处理操作的最佳选择。同时,在 Python 生态当中也有很多可以免费使用的优秀的图像处理工具。

下文将介绍 10 个可以用于图像处理任务的 Python 库,它们在编辑图像、查看图像底层数据方面都提供了简单直接的方法。

1、scikit-image

scikit-image 是一个结合 NumPy 数组使用的开源 Python 工具,它实现了可用于研究、教育、工业应用的算法和应用程序。即使是对于刚刚接触 Python 生态圈的新手来说,它也是一个在使用上足够简单的库。同时它的代码质量也很高,因为它是由一个活跃的志愿者社区开发的,并且通过了同行评审peer review

资源

scikit-image 的文档非常完善,其中包含了丰富的用例。

示例

可以通过导入 skimage 使用,大部分的功能都可以在它的子模块中找到。

图像滤波image filtering

  1. import matplotlib.pyplot as plt
  2. %matplotlib inline
  3.  
  4. from skimage import data,filters
  5.  
  6. image = data.coins() # ... or any other NumPy array!
  7. edges = filters.sobel(image)
  8. plt.imshow(edges, cmap='gray')

Image filtering in scikit-image

使用 match_template() 方法实现模板匹配template matching

Template matching in scikit-image

在展示页面可以看到更多相关的例子。

2、NumPy

NumPy 提供了对数组的支持,是 Python 编程的一个核心库。图像的本质其实也是一个包含像素数据点的标准 NumPy 数组,因此可以通过一些基本的 NumPy 操作(例如切片、掩膜mask花式索引fancy indexing等),就可以从像素级别对图像进行编辑。通过 NumPy 数组存储的图像也可以被 skimage 加载并使用 matplotlib 显示。

资源

在 NumPy 的官方文档中提供了完整的代码文档和资源列表。

示例

使用 NumPy 对图像进行掩膜mask操作:

  1. import numpy as np
  2. from skimage import data
  3. import matplotlib.pyplot as plt
  4. %matplotlib inline
  5.  
  6. image = data.camera()
  7. type(image)
  8. numpy.ndarray #Image is a NumPy array:
  9.  
  10. mask = image < 87
  11. image[mask]=255
  12. plt.imshow(image, cmap='gray')

NumPy

3、SciPy

像 NumPy 一样,SciPy 是 Python 的一个核心科学计算模块,也可以用于图像的基本操作和处理。尤其是 SciPy v1.1.0 中的 scipy.ndimage 子模块,它提供了在 n 维 NumPy 数组上的运行的函数。SciPy 目前还提供了线性和非线性滤波linear and non-linear filtering二值形态学binary morphologyB 样条插值B-spline interpolation对象测量object measurements等方面的函数。

资源

在官方文档中可以查阅到 scipy.ndimage 的完整函数列表。

示例

使用 SciPy 的高斯滤波对图像进行模糊处理:

  1. from scipy import misc,ndimage
  2.  
  3. face = misc.face()
  4. blurred_face = ndimage.gaussian_filter(face, sigma=3)
  5. very_blurred = ndimage.gaussian_filter(face, sigma=5)
  6.  
  7. #Results
  8. plt.imshow(<image to be displayed>)

Using a Gaussian filter in SciPy

4、PIL/Pillow

(编辑:甘孜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读