2021年最新用于图像处理的Python库总结


Posted in Python onJune 15, 2021

一、OpenCV

OpenCV是最著名和应用最广泛的开源库之一,用于图像处理、目标检测、人脸检测、图像分割、人脸识别等计算机视觉任务。除此之外,它还可以用于机器学习任务。

这是英特尔在2002年开发的。它是用C++编写的,但是开发人员已经提供了Python和java绑定。它易于阅读和使用。

为了建立计算机视觉和机器学习模型,OpenCV有超过2500种算法。这些算法对于执行各种任务非常有用,例如人脸识别、目标检测等。让我们看一些可以使用OpenCV执行的示例:

2021年最新用于图像处理的Python库总结

灰度缩放

灰度缩放是一种将3通道图像(如RGB、HSV等)转换为单通道图像(即灰度)的方法。最终的图像在全白和全黑之间变化。灰度缩放的重要性包括降维(将3通道图像转换为单通道图像)、降低模型复杂度等。

下面的代码片段显示了OpenCV中的灰度缩放

import cv2 as cv
img = cv.imread('example.jpg')
cv.imshow('Original', img)
cv.waitKey()
#Use cvtColor, to convert to grayscale
gray_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('Grayscale', gray_img)
cv.waitKey(0)

2021年最新用于图像处理的Python库总结

旋转图像

OpenCV有助于使用从0到360度的任意角度旋转图像。

检查以下代码以将图像旋转180度。

import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread('example.jpg')
h, w = image.shape[:2]
rot_matrix = cv.getRotationMatrix2D((w/2,h/2), -180, 0.5)
rot_image = cv.warpAffine(img, rot_matrix, (w, h))
plt.imshow(cv.cvtColor(rot_image, cv.COLOR_BGR2RGB))

2021年最新用于图像处理的Python库总结

OpenCV还提供了除我们到目前为止讨论的功能之外的其他功能。除此之外,它还有助于人脸检测、图像分割、特征提取、目标检测、三维重建等。

有关更多信息,请查看官方文档:https://opencv.org/

二、Scikit-Image

Scikit Image是另一个伟大的开源图像处理库。它几乎适用于任何计算机视觉任务。它是最简单、最直接的库之一。这个库的某些部分是用Cython编写的(它是python编程语言的超集,旨在使python比C语言更快)。

它提供了大量的算法,包括分割、颜色空间操作、几何变换、滤波、形态学、特征检测等。

Scikit Image使用Numpy数组作为图像对象。让我们看看如何在scikit图像中执行活动轮廓操作。活动轮廓描述图像中形状的边界。

2021年最新用于图像处理的Python库总结

检查以下活动轮廓操作代码:

import numpy as np
import matplotlib.pyplot as plt
from skimage.color import rgb2gray
from skimage import data
from skimage.filters import gaussian
from skimage.segmentation import active_contour
image = data.astronaut()
# Data for circular boundary
s = np.linspace(0, 2*np.pi, 400)
x = 220 + 100*np.cos(s)
y = 100 + 100*np.sin(s)
init = np.array([x, y]).T
# formation of the active contour
centre = active_contour(gaussian(image, 3),init, alpha=0.015, beta=10, gamma=0.001)
figure, axis = plt.subplots(1, 2, figsize=(7, 7))
ax[0].imshow(image, cmap=plt.cm.gray)
ax[0].set_title("Original Image")
ax[1].imshow(image, cmap=plt.cm.gray)

2021年最新用于图像处理的Python库总结

有关更多信息,请查看官方文档:https://scikit-image.org/docs/stable/auto_examples/

三、Scipy

SciPy主要用于数学和科学计算,但有时也可以使用子模块SciPy.ndimage用于基本的图像操作和处理任务。

归根结底,图像只是多维数组,SciPy提供了一组用于操作n维Numpy操作的函数。SciPy提供了一些基本的图像处理操作,如人脸检测、卷积、图像分割、读取图像、特征提取等。

除此之外,还可以执行过滤,在图像上绘制轮廓线。

2021年最新用于图像处理的Python库总结

请检查以下代码以使用SciPy模糊图像:

from scipy import ndimage, misc
from matplotlib import pyplot as plt
f = misc.face()
b_face = ndimage.gaussian_filter(f, sigma=3)
figure, axis = plt.subplots(1, 2, figsize=(16, 8))

2021年最新用于图像处理的Python库总结

有关更多信息,请查看官方文档:https://docs.scipy.org/doc/scipy/reference/ndimage.html

四、Python Image Library (Pillow/PIL)

它是一个用于图像处理任务的开放源码python库。它提供了其他库通常不提供的特殊功能,如过滤、打开、操作和保存图像。这个库支持多种文件格式,这使它更高效。PIL还支持图像处理、图像显示和图像存档等功能。让我们看看使用Pillow/PIL的图像增强。

2021年最新用于图像处理的Python库总结

更改图像的清晰度:

2021年最新用于图像处理的Python库总结

有关更多信息,请查看官方文档:https://pillow.readthedocs.io/en/stable/index.html

五、Matplotlib

Matplotlib主要用于二维可视化,如散点图、条形图、直方图等,但我们也可以将其用于图像处理。从图像中提取信息是有效的。它不支持所有的文件格式。

2021年最新用于图像处理的Python库总结

背景颜色更改操作后,请检查以下图像:

2021年最新用于图像处理的Python库总结

有关更多信息,请查看官方文档:https://matplotlib.org/stable/tutorials/introductory/images.html

六、SimpleITK

它也称为图像分割和注册工具包。它是一个用于图像注册和图像分割的开源库。像OpenCV这样的库将图像视为一个数组,但是这个库将图像视为空间中某个区域上的一组点。检查以下示例:

2021年最新用于图像处理的Python库总结

图像分割

有关更多信息,请查看官方文档:https://itk.org/

七、Numpy

它是一个用于数值分析的开放源码python库。它包含一个矩阵和多维数组作为数据结构。但是NumPy也可以用于图像处理任务,例如图像裁剪、操作像素和像素值的蒙版。

2021年最新用于图像处理的Python库总结

检查下图以从图像中提取绿色/红色/蓝色通道:

2021年最新用于图像处理的Python库总结

有关更多信息,请查看官方文档:https://scikit-image.org/docs/dev/user_guide/numpy_images.html

八、Mahotas

它是另一个用于计算机视觉和图像处理的开放源码python库。它是为生物信息学而设计的。它提供了很多算法,这些算法是用C++编写的,速度很快,使用了一个好的Python接口。它以NumPy数组读取和写入图像。

使用Mahotas检查下面的模板匹配图像:

2021年最新用于图像处理的Python库总结

有关更多信息,请查看官方文档:https://mahotas.readthedocs.io/en/latest/#

到此这篇关于2021年用于图像处理的Python库总结的文章就介绍到这了,更多相关Python图像处理常用库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
利用Python和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 Python
Python实现将一个正整数分解质因数的方法分析
Dec 14 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
Python使用wxPython实现计算器
Jan 30 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
Jun 09 Python
5分钟 Pipenv 上手指南
Dec 20 Python
python求最大值最小值方法总结
Jun 25 Python
pytorch forward两个参数实例
Jan 17 Python
Python实现淘宝秒杀功能的示例代码
Jan 19 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
Dec 24 Python
Python中的xlrd模块使用整理
Jun 15 #Python
浅谈python中的多态
Jun 15 #Python
如何正确理解python装饰器
Jun 15 #Python
详解python网络进程
整理Python中常用的conda命令操作
Python实现单例模式的5种方法
Jun 15 #Python
用Python爬取某乎手机APP数据
You might like
PHP模块memcached使用指南
2014/12/08 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
Jquery实现简单的动画效果代码
2012/03/18 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
WebStorm ES6 语法支持设置&babel使用及自动编译(详解)
2017/09/08 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
Python原始字符串(raw strings)用法实例
2014/10/13 Python
python分割文件的常用方法
2014/11/01 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
python文本数据处理学习笔记详解
2019/06/17 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
核心价值观演讲稿
2014/05/13 职场文书
交通志愿者活动总结
2014/06/27 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技