Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >整理 Python 中的图像处理利器(共10个)

整理 Python 中的图像处理利器(共10个)

作者头像
Python知识大全
发布于 2021-10-26 05:33:27
发布于 2021-10-26 05:33:27
1.3K00
代码可运行
举报
文章被收录于专栏:Python 知识大全Python 知识大全
运行总次数:0
代码可运行

当今世界充满了各种数据,而图像是其中高的重要组成部分。然而,若想其有所应用,我们需要对这些图像进行处理。图像处理是分析和操纵数字图像的过程,旨在提高其质量或从中提取一些信息,然后将其用于某些方面。

图像处理中的常见任务包括显示图像,基本操作(如裁剪、翻转、旋转等),图像分割,分类和特征提取,图像恢复和图像识别等。Python 之成为图像处理任务的最佳选择,是因为这一科学编程语言日益普及,并且其自身免费提供许多最先进的图像处理工具。

让我们看一下用于图像处理任务的一些常用 Python 库。

# 1. scikit Image

scikit-image 是一个基于 numpy 数组的开源 Python 包。它实现了用于研究、教育和工业应用的算法和实用程序。即使是对于那些刚接触 Python 的人,它也是一个相当简单的库。此库代码质量非常高并已经过同行评审,是由一个活跃的志愿者社区编写的。

用法举例:图像过滤、模版匹配

可使用“skimage”来导入该库。大多数功能都能在子模块中找到。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import matplotlib.pyplot as plt%matplotlib inlinefrom skimage import data,filtersimage = data.coins()# ... or any other NumPy array!edges = filters.sobel(image)plt.imshow(edges, cmap='gray')

模版匹配(使用 match_template 函数)

# 2. Numpy

Numpy 是 Python 编程的核心库之一,支持数组结构。图像本质上是包含数据点像素的标准 Numpy 数组。因此,通过使用基本的 NumPy 操作——例如切片、脱敏和花式索引,可以修改图像的像素值。可以使用 skimage 加载图像并使用 matplotlib 显示。

用法举例:使用 Numpy 来对图像进行脱敏处理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as npfrom skimage import dataimport matplotlib.pyplot as plt%matplotlib inlineimage = data.camera()type(image)numpy.ndarray #Image is a numpy arraymask = image < 87image[mask]=255plt.imshow(image, cmap='gray')

# 3. Scipy

scipy 是 Python 的另一个核心科学模块,就像 Numpy 一样,可用于基本的图像处理和处理任务。值得一提的是,子模块 scipy.ndimage 提供了在 n 维 NumPy 数组上运行的函数。该软件包目前包括线性和非线性滤波、二进制形态、B 样条插值和对象测量等功能。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from scipy import misc,ndimageface = misc.face()blurred_face = ndimage.gaussian_filter(face, sigma=3)very_blurred = ndimage.gaussian_filter(face, sigma=5)#Resultsplt.imshow(<image to be displayed>)

# 4. PIL/ Pillow

PIL (Python Imaging Library) 是一个免费的 Python 编程语言库,它增加了对打开、处理和保存许多不同图像文件格式的支持。然而,它的发展停滞不前,其最后一次更新还是在 2009 年。幸运的是, PIL 有一个正处于积极开发阶段的分支 Pillow,它非常易于安装。Pillow 能在所有主要操作系统上运行并支持 Python 3。该库包含基本的图像处理功能,包括点操作、使用一组内置卷积内核进行过滤以及颜色空间转换。

用法举例:使用 ImageFilter 增强 Pillow 中的图像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from PIL import Image, ImageFilter#Read imageim = Image.open( 'image.jpg' )#Display imageim.show()from PIL import ImageEnhanceenh = ImageEnhance.Contrast(im)enh.enhance(1.8).show("30% more contrast")

# 5. OpenCV-Python

OpenCV(开源计算机视觉库,Open Source Computer Vision Library)是计算机视觉应用中使用最广泛的库之一。OpenCV-Python 是 OpenCV 的 python API。OpenCV-Python 不仅速度快(因为后台由用 C / C ++ 编写的代码组成),也易于编码和部署(由于前端的 Python 包装器)。这使其成为执行计算密集型计算机视觉程序的绝佳选择。

用法举例:使用 Pyramids 创建一个名为'Orapple'的新水果的功能

# 6. SimpleCV

SimpleCV 也是用于构建计算机视觉应用程序的开源框架。通过它可以访问如 OpenCV 等高性能的计算机视觉库,而无需首先了解位深度、文件格式或色彩空间等。学习难度远远小于 OpenCV,并且正如他们的标语所说,“ 它使计算机视觉变得简单 ”。支持 SimpleCV 的一些观点是:

  • 即使是初学者也可以编写简单的机器视觉测试
  • 摄像机、视频文件、图像和视频流都可以交互操作

用法举例

07

Mahotas

Mahotas 是另一个用于 Python 的计算机视觉和图像处理库。它包含传统的图像处理功能(如滤波和形态学操作)以及用于特征计算的更现代的计算机视觉功能(包括兴趣点检测和局部描述符)。该接口使用 Python,适用于快速开发,但算法是用 C++ 实现的,并且针对速度进行了优化。Mahotas 库运行很快,它的代码很简单,(对其它库的)依赖性也很小。建议阅读他们的官方文档以了解更多内容。

用法举例

Mahotas 库使用简单的代码来完成工作。对于“ 寻找 Wally ”的问题,Mahotas 完成的得很好,而且代码量非常小。

# 8. SimpleITK

ITK (Insight Segmentation and Registration Toolkit) 是一个开源的跨平台系统,为开发人员提供了一整套用于图像分析的软件工具。其中, SimpleITK 是一个建立在 ITK 之上的简化层,旨在促进其在快速原型设计、教育以及脚本语言中的使用。SimpleITK 是一个包含大量组件的图像分析工具包,支持一般的过滤操作、图像分割和配准。SimpleITK 本身是用 C++ 编写的,但可用于包括 Python 在内的大量编程语言。

这里有大量说明了如何使用 SimpleITK 进行教育和研究活动的 Jupyter notebook。notebook 中演示了如何使用 SimpleITK 进行使用 Python 和 R 编程语言的交互式图像分析。

用法举例

下面的动画是使用 SimpleITK 和 Python 创建的可视化的严格 CT / MR 配准过程。

# 9. pgmagick

pgmagick 是 GraphicsMagick 库基于 Python 的包装器。GraphicsMagick 图像处理系统有时被称为图像处理的瑞士军刀。它提供了强大而高效的工具和库集合,支持超过 88 种主要格式图像的读取、写入和操作,包括 DPX,GIF,JPEG,JPEG-2000,PNG,PDF,PNM 和 TIFF 等重要格式。

用法举例:缩放、边缘提取

缩放

边缘提取

# 10. Pycairo

Pycairo 是图形库 cairo 的一组 python 绑定。Cairo 是一个用于绘制矢量图形的 2D 图形库。矢量图形很有趣,因为它们在调整大小或进行变换时不会降低清晰度。Pycairo 库可以从 Python 调用 cairo 命令。

用法:Pycairo 可以绘制线条、基本形状和径向渐变

以上就是一些免费的优秀图像处理 Python 库。有些很知名,你可能已经知道或者用过,有些可能对你来说还是新的。那正好现在就上手操作一下,试一试吧!

---------End---------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python 知识大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
input type="file"属性详解,利用capture调用手机摄像头
Value:DOMString 选择文件的路径。DOMString 是UTF-16字符串。由于JavaScript已经使用了这样的字符串,所以DOMString 直接映射到 String。
德顺
2019/11/13
11.7K0
input type="file"属性详解,利用capture调用手机摄像头
input file accept限制文件上传类型
上传文件只允许上传doc、docx、jpg、png、gif和pdf格式的文件,需要在前后端进行双重限制
全栈程序员站长
2022/09/09
6.5K0
常见文件的mine type类型及获取方法
前面提到Kangle 服务器添加 mine type 文件类型,但是网上给出的文件类型难免没有那我全面,往往我们正需要的网上却没有。
德顺
2019/11/13
5.5K2
React 文件上传组件 File Upload
文件上传是 Web 应用中常见的功能之一,无论是图片、文档还是其他类型的文件,都需要一个可靠的文件上传组件来实现这一功能。React 作为目前最流行的前端框架之一,提供了丰富的生态系统和工具来帮助开发者构建高效的文件上传组件。本文将从浅入深地介绍如何在 React 中实现文件上传组件,包括常见的问题、易错点以及如何避免这些问题。
Jimaks
2024/11/27
4600
React 文件上传组件 File Upload
文件上传是现代 Web 应用中不可或缺的功能之一。无论是用户头像、文档附件还是多媒体文件,都需要一个高效且可靠的文件上传组件来处理。React 作为当前最流行的前端框架之一,提供了丰富的工具和库来简化文件上传的实现。本文将从基础开始,逐步深入介绍如何在 React 中实现文件上传组件,并探讨一些常见的问题、易错点及如何避免这些问题。
Jimaks
2024/12/03
5661
React 文件上传组件 File Upload
WebUploader文件上传插件
WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+。两套运行时,同样的调用方式,可供用户任意选用。
一觉睡到小时候
2019/07/04
3.9K3
Vue项目文件拖拽上传攻略
在现代Web开发中,文件上传是一个常见的需求。传统的文件上传方式通常需要用户手动点击上传按钮,然后选择文件。这种方式虽然简单,但在用户体验上存在一定的局限性。为了提升用户体验,我们可以使用拖拽上传的方式,让用户更加直观地完成文件上传操作。本文将详细介绍如何在Vue项目中实现文件拖拽上传功能,包括基本实现步骤、使用第三方库、优化和扩展技巧等内容。
Front_Yue
2025/01/14
5250
Vue项目文件拖拽上传攻略
浅谈h5文件上传
近期的需求中包含了上传头图(图片)和上传菜品(excel文件)的功能,商家可灵活上传使用自己制作的问卷图片,用户评价上传的菜品。
江米小枣
2020/06/16
2.8K0
浅谈h5文件上传
文件上传杂谈
文件上传是前端很常见的一类场景。图片、视频和文档等等都属于文件范畴,每个文件则是通过 File.Type 进行更细的划分。本文将针对文件上传的一些通用维度场景做简单的剖析和尝试,抛砖引玉,希望共同学习,共同成长。
有赞coder
2021/01/18
1.6K0
文件上传杂谈
调用DeepSeek API增强版纯前端实现方案,支持文件上传和内容解析功能
在现代Web开发中,文件上传和内容解析是常见的需求。随着人工智能技术的发展,DeepSeek API增强版提供了一个强大的解决方案,支持多种文件格式的上传和内容解析。本文将详细介绍如何通过纯前端技术调用DeepSeek API增强版,实现文件上传和内容解析功能,帮助开发者快速构建高效、安全的Web应用。
全干程序员demo
2025/03/27
8060
调用DeepSeek API增强版纯前端实现方案,支持文件上传和内容解析功能
Bootstrap File Input,最好用的文件上传组件
本篇介绍如何使用 Bootstrap File Input(最好用的文件上传组件)来进行图片的展示、上传,以及如何在服务器端进行文件保存。
全栈程序员站长
2022/09/06
4.3K0
Bootstrap File Input,最好用的文件上传组件
input = file 实现上传文件
使用input = file实现文件上传功能, 如果点击提交按钮,提交表单并上传选中的文件:
全栈程序员站长
2022/09/13
7.3K0
input = file 实现上传文件
html5 文件api使用示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>html5文件API</title> <script type="text/javascript"> function getName(){ var file = document.getElementById("file"); //document.getElementById("file").files // 返回 FileList对象
好派笔记
2021/11/02
8150
前端如何上传文件
因为<input type="file" id="file-input"/> 文件不好修改样式,一般我们会自己做一个上传的按钮来代替原生上传按钮。
Daotin
2022/05/09
2K0
Javascript上传图片转base64并预览,拿走不谢!
input的file类型在浏览器中会渲染为一个按钮和一段文字。当你点击按钮时会打开文件选择窗口,文字表示对文件的描述;如图:
用户1272076
2019/03/26
9.4K0
Javascript上传图片转base64并预览,拿走不谢!
Antd多文件上传后台接收为null问题
在使用antd开发过程中,Upload组件的上传,一般是通过action配置后端接口地址,自动上传文件;但是当文件数量较多时,需要进行手动上传,但是手动上传后台一直无法接收到数据,数据为null。
PHP开发工程师
2022/03/14
1.6K0
Antd多文件上传后台接收为null问题
Vue 使用Axios上传文件
单独文件上传 HTML <input class="file" name="file" type="file" accept="image/png,image/gif,image/jpeg" @change="update"/> JS methods: { update(e){ let file = e.target.files[0]; let param = new FormData(); //创建form对象 param.append('file',file);//通过app
码客说
2019/10/22
4.1K0
Yii2文件/图片上传实例
Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。 名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义, 也可看作 Yes It Is! 的缩写。
OwenZhang
2022/05/26
1.5K0
Yii2文件/图片上传实例
ajax+php上传图片,等比压缩,canvas压缩减少上传带宽,优化上传速度
至此后端已经压缩完毕,但是如果上传的图片大多是几M的大图,难免浪费上传带宽,而且会导致速度非常慢,影响用户体验,于是可以使用canvas在上传之前压缩一遍,解决速度慢的问题。
躺平程序员老修
2023/09/05
4430
通过 PHP把文件上传到服务器
注释: 允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
用户9042463
2021/09/29
4.3K0
相关推荐
input type="file"属性详解,利用capture调用手机摄像头
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验