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中cPickle用法例子分享
Jan 03 Python
python实现百度关键词排名查询
Mar 30 Python
python根据出生年份简单计算生肖的方法
Mar 27 Python
在Python中进行自动化单元测试的教程
Apr 15 Python
python运行时间的几种方法
Jun 17 Python
Python编程对列表中字典元素进行排序的方法详解
May 26 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
selenium+python实现自动登录脚本
Apr 22 Python
对python添加模块路径的三种方法总结
Oct 16 Python
Django Rest framework之权限的实现示例
Dec 17 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 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版国家代码、缩写查询函数代码
2011/08/14 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
EsLint入门学习教程
2017/02/17 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
js自定义弹框插件的封装
2020/08/24 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Django admin美化插件suit使用示例
2017/12/12 Python
python opencv实现运动检测
2018/07/10 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
python实现支付宝转账接口
2019/05/07 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
美国休闲服装品牌:Express
2016/09/24 全球购物
党校培训自我鉴定范文
2014/04/10 职场文书
师德承诺书
2015/01/20 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
iPhone13再次曝光
2021/04/15 数码科技
浅谈Python数学建模之整数规划
2021/06/23 Python
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS