-
python图像处理教程_Python学习教程,Python学习路线:10大Python图像处理工具
2020-12-02 21:14:49原标题:Python学习教程,Python学习路线:10大Python图像处理工具Python学习教程,Python学习路线:10大Python图像处理工具话说程序员配拥有爱情吗?算了,说起这个话题就扎心,我还是老老实实跟你们更新Python学习...原标题:Python学习教程,Python学习路线:10大Python图像处理工具
Python学习教程,Python学习路线:10大Python图像处理工具
话说程序员配拥有爱情吗?算了,说起这个话题就扎心,我还是老老实实跟你们更新Python学习教程,你们可别虐我哈!
Python学习教程,Python学习路线:10大Python图像处理工具
今天跟大家总结了10个Python图像处理工具。
这些Python库提供了一种简单直观的方法来转换图像并理解底层数据。
图像是数据的重要组成部分。但是,在使用之前,必须对这些数字图像进行 分析和操作,以提高其质量或提取一些可以使用的信息。
常见的图像处理任务包括显示; 基本操作如裁剪,翻转,旋转等;;图像分割,分类和特征提取;图像恢复;图像识别。Python是这些图像处理任务的绝佳选择,因为它作为一种科学编程语言日益普及,并且在其生态系统中免费提供许多最先进的图像处理工具。
这里着眼于10个最常用的Python库,用于图像处理任务。这些库提供了一种简单直观的方法来转换图像并理解底层数据。
1. scikit-image
scikit-image是一个与NumPy数组一起使用的开源Python包。它实现了用于研究,教育和行业应用的算法和实用程序。它是一个相当简单直接的库,即使对那些不熟悉Python生态系统的人也是如此。代码质量高,经过同行评审,由一个活跃的志愿者社区编写。
资源
scikit-image文档丰富,有很多示例和实际使用方法。
用法
该包通过skimage导入,大多数功能可以在子模块中找到。
图像过滤:
使用match_template函数进行模板匹配:
你可以在gallery中找到更多的例子。
2. NumPy
NumPy是Python编程中的核心库之一,并为数组提供支持。图像本质上是包含数据点像素的标准NumPy数组。因此,通过使用基本的NumPy操作(如slicing,masking和fancy indexing),您可以修改图像的像素值。可以使用skimage加载图像并使用 Matplotlib显示。
资源
NumPy的官方文档页面提供了完整的资源和文档列表。
用法
使用Numpy来mask图片:
3. SciPy
SciPy是Python的另一个核心科学模块(如NumPy),可用于基本的图像操作和处理任务。特别是,子模块 scipy.ndimage(在SciPy v1.1.0中)提供了在n维NumPy数组上运行的函数。该软件包目前包括线性和非线性滤波,二进制形态,B样条插值和对象测量等功能。
资源
有关scipy.ndimage包所提供的完整功能列表,请参阅文档。
用法
使用SciPy通过高斯滤波器进行模糊
4. PIL/Pillow
PIL(Python Imaging Library)是一个免费的Python编程语言库,它增加了对打开,操作和保存许多不同图像格式的支持。然而,它的发展停滞不前,其最后一版发布于2009年。幸运的是,Pillow是一个积极开发的PIL分支,它更易于安装,可在所有主流操作系统上运行,并支持Python 3。该库包含基本图像处理功能,包括点操作,使用一组内置卷积内核进行过滤以及颜色空间转换。
资源
文档包含安装说明以及涵盖库的每个模块的示例。
用法
使用ImageFilter增强Pillow中的图像:
5. OpenCV-Python
OpenCV(Open Source Computer Vision Library)是计算机视觉应用中使用最广泛的库之一。OpenCV-Python是OpenCV的Python API。因为后台由C / C ++编写的代码组成,OpenCV-Python速度很快快,但它也很容易编码和部署(由于前端的Python包装器)。这使其成为执行计算密集型计算机视觉程序的绝佳选择。
资源
通过OpenCV2-Python-Guide可以很容易上手OpenCV-Python
用法
使用OpenCV-Python中的 Image Blending using Pyramids创建一个“Orapple”:
6. SimpleCV
SimpleCV是另一个用于构建计算机视觉应用程序的开源框架。它提供访问几个高性能计算机视觉库,如OpenCV,的接口,但无需了解位深度,文件格式,色彩空间等。它的学习曲线远小于OpenCV,并且(如其标语所示),“它令计算机视觉变得简单。”支持SimpleCV的一些观点是:
即使是初学者也可以编写简单的机器视觉测试
摄像机,视频文件,图像和视频流都可以互操作
资源
很容易按照官方文档的指导进行操作,并有大量的示例和用例可供遵循。
用法
7. Mahotas
Mahotas是另一个用于Python的计算机视觉和图像处理库。它包含传统的图像处理功能,如过滤和形态操作,以及用于特征计算的更现代的计算机视觉功能,包括兴趣点检测和局部描述符。使用Python编写接口,适用于快速开发,但算法是用C ++实现的,并且针对速度进行了优化。Mahotas库运行快速,代码简约,依赖性小。阅读其官方文章以获得更多了解。
资源
文档包含安装说明,示例,甚至一些教程帮助您轻松开始使用Mahotas。
用法
Mahotas库依靠简单的代码来完成工作。例如,使用最少量的代码Finding Wally问题就可以很好地解决。
解决Finding Wally问题:
8. SimpleITK
ITK(Insight Segmentation and Registration Toolkit)是一个“开源,跨平台系统,为开发人员提供了一套用于图像分析的广泛软件工具。SimpleITK是一个基于ITK构建的简化层,旨在促进其在快速原型设计,交易以及解释语言方面的应用。”它也是一个图像分析工具包,具有大量组件,支持一般过滤操作,图像分割和配准。SimpleITK是用C ++编写的,但它可用包括Python在内的大量编程语言进行操作。
资源
有大量的Jupyter Notebook说明了SimpleITK在教育和研究活动中的应用。Notebooks使用Python和R编程语言演示如何使用SimpleITK进行交互式图像分析。
用法
使用SimpleITK和Python创建可视化的严格CT / MR配准过程:
9. pgmagick
pgmagick是基于Python的GraphicsMagick库的包装器。GraphicsMagick图像处理系统,有时也被称为图像处理的瑞士军刀。其强大而高效的工具和库集合支持在超过88种主要格式(包括DPX,GIF,JPEG,JPEG-2000,PNG,PDF,PNM和TIFF)上读取,写入和操作图像。
资源
pgmagick的GitHub respository有安装说明和要求。还有一个详细的用户指南。
用法
图像缩放:
边缘提取:
10. Pycairo
Pycairo是Cairo图形库的一组Python绑定。Cairo是一个用于绘制矢量图形的2D图形库。矢量图形很有趣,因为它们在调整大小或变换时不会失去清晰度。Pycairo可以从Python调用Cairo命令。
资源
Pycairo GitHub respository是一个很好的资源,包含有关安装和使用的详细说明。还有一个入门指南,有一个关于Pycairo的简短教程。
用法
用Pycairo绘制线条,基本形状和径向渐变:
结论
这些图像处理库,大家可视情况选择,大家520安心做码农哈!更多的Python学习教程和Python学习路线的更新可继续关注哦!返回搜狐,查看更多
责任编辑:
-
photoshop图像处理教程x_python图像处理教程
2020-02-16 08:13:062019年12月19日3时28分;2019年12月19日3时28分;2019年12月19日3时28分;2019年12月19日3时28分;2019年12月19日3时28分;2019年12月19日3时28分;2019年12月19日3时28分;2019年12月19日3时28分;2019年12月19日3时28分;... -
Photoshop CS4图像处理教程项目十一_python图像处理教程
2020-05-18 10:51:08相关知识 印刷前的准备工作 印刷前 的准备 工作 图像的分辨率 图像的颜色模式 图像的储存格式 图像的字体 选择输出中心与印刷商 图像的文件操作 相关知识 色彩校对 1 显示器色彩校对 同一个图像文件的颜色在不同的... -
Photoshop CS4图像处理教程项目四_python图像处理教程
2020-05-18 11:54:54相关知识 认识画笔面板 任务实施 1 2 3 载入Photoshop自带的画笔 使用画笔工具绘制图像 使用铅笔工具 载入Photoshop自带的画笔 1.设置前景色以及选择湿介质画笔命令 2.追加画笔 使用画笔工具绘制图像 使用湿介质画笔... -
Photoshop CS4图像处理教程项目八_python图像处理教程
2020-05-18 10:48:40任务目标 本任务将学习用Photoshop CS4的各种形状工具主要用到了圆角矩形工具和矩形工具制作标志背景然后使用自定形状工具来为文字路径添加相关自定形状以制作出个性化的文字通过本任务的学习可以掌握形状工具的相关... -
python 图像处理 教程 例子
2019-07-01 14:20:03这是一个用python做图像处理的教程 里面包含了,阈值化,局部阈值化,各种分割算法,膨胀腐蚀,孔洞填充,批量处理,特征提取,神经网络分类算法等等, 而且有相当全面的中文注释做支撑,欢迎大家学习交流 ...https://github.com/Zaledzl/picture_processing/tree/master
放在github里面了
这是一个用python做图像处理的教程 里面包含了,阈值化,局部阈值化,各种分割算法,膨胀腐蚀,孔洞填充,批量处理,特征提取,神经网络分类算法等等, 而且有相当全面的中文注释做支撑,欢迎大家学习交流 -
中文Photoshop CS3图像处理实训教程 第6章_python图像处理教程
2020-08-02 06:45:296.3 蒙版的应用 蒙版分为快速蒙版通道蒙版和图层蒙版本节将详细进行介绍 6.3.1 使用快速蒙版 快速蒙版是用于创建和查看图像的临时蒙版可以不使用通道面板而将任意选区作为蒙版来编辑把选区作为蒙版的好处是可以运用... -
中文Photoshop CS3图像处理实训教程 第5章_python图像处理教程
2020-08-02 06:45:03图5.3.5 几种特殊图层样式效果 图5.3.5 几种特殊图层样式效果续 5.4 设置图层混合模式 在Photoshop中用户可以将上面图层和下面图层的像素进行混合得到另外一种图像效果在图层面板中单击选项右侧的下拉按钮可弹出图层... -
python图像处理教程_Python基于Tensor FLow的图像处理操作详解
2020-12-07 22:54:46本文实例讲述了Python基于Tensor FLow的图像处理操作。分享给大家供大家参考,具体如下:在对图像进行深度学习时,有时可能图片的数量不足,或者希望网络进行更多的学习,这时可以对现有的图片数据进行处理使其变成...本文实例讲述了Python基于Tensor FLow的图像处理操作。分享给大家供大家参考,具体如下:
在对图像进行深度学习时,有时可能图片的数量不足,或者希望网络进行更多的学习,这时可以对现有的图片数据进行处理使其变成一张新的图片,在此基础上进行学习,从而提高网络识别的准确率。
1、图像解码显示
利用matplot库可以方便简洁地在jupyter内对图片进行绘制与输出,首先通过tf.gfile打开图片文件,并利用函数tf.image.decode_jpeg将jpeg图片解码为三位矩阵,之后便可以通过matplot绘制与显示图片信息了
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
#读取图像文件
image_raw=tf.gfile.GFile('D:\Temp\MachineLearning\data\cat.jpeg','rb').read()
with tf.Session() as sess:
#对jpeg图像解码得到图像的三位矩阵数据
image_data=tf.image.decode_jpeg(image_raw)
print(image_data.eval())
plt.imshow(image_data.eval())
plt.show()
可以看到打印的图片三维矩阵信息和显示的图片:
2、图像缩放
tensorflow还自带了许多图像处理函数,比如resize_image对图片进行大小的缩放。其中第一个参数代表图片数据源,第二个数组代表缩放后的大小,第三个method代表采用的缩放方法,默认0是双线性插值法,1代表最近邻插值法,2代表双立方插值法,3代表像素区域插值法。
#对图片大小进行缩放
image_resize=tf.image.resize_images(image_data,[500,500],method=0)
#tensorflow处理后的图片是float32格式的,需要转化为uint8才能正确输出
image_resize=np.asarray(image_resize.eval(),dtype='uint8')
plt.imshow(image_resize)
plt.show()
3、图像裁切
函数tf.image.resize_image_with_crop_or_pad可以在保证图片原始比例的条件下对图片进行裁切或填充。
函数tf.image.random_crop是随机对图片进行选取裁剪,而不是以中心。
#图片裁剪
image_crop=tf.image.resize_image_with_crop_or_pad(image_data,500,500)
plt.imshow(image_crop.eval())
plt.show()
#随机裁剪
img_random=tf.image.random_crop(image_data,[300,300,3])
plt.imshow(img_random.eval())
plt.show()
resize_image_with_crop_or_pad第一个参数是图片资源,后两个参数是裁切后的图片大小,当原始图片大于目标值时将裁去两边多余部分,当图片小于目标值时将用黑色填充,例如上图左右被裁剪,上下用黑色填充。
random_crop第一个参数是图片资源,第二个参数是一个三位张量,代表目标图像大小。
4、图像翻转
通过函数实现图片的上下、左右翻转,在模型训练时,可以将原本的样本图片进行反转,作为新的特征值进行输入供模型训练。
#上下翻转
img_down=tf.image.flip_up_down(image_data)
plt.imshow(img_down.eval())
plt.show()
#左右翻转
img_left=tf.image.flip_left_right(image_data)
plt.imshow(img_left.eval())
plt.show()
5、调整对比度、明度、饱和度
通过tf.image.adjust_contrast可以对图像对比度进行调整,当参数大于1代表加深,小于1代表减淡
tf.image.random_contrast可以在指定范围内随即调整对比度
类似的还有adjust_brightness、adjust_saturation、adjust_hue对明度、饱和度、色相进行调整
#加深对比度
img_deep=tf.image.adjust_contrast(image_data,2)
plt.imshow(img_deep.eval())
plt.show()
#降低对比度
img_fade=tf.image.adjust_contrast(image_data,0.5)
plt.imshow(img_fade.eval())
plt.show()
#随机对比度
img_contrast=tf.image.random_contrast(image_data,0.5,2)
plt.imshow(img_contrast.eval())
plt.show()
6、对VGG网络的输入图片进行处理
Vgg网络训练中传入的图片参数x_img是以batch_size为单位的四维数据,例如传入20张32×32的3通道图片,其数据为[20,32,32,3]。但是tensorflow的图片处理函数只可以处理三维的单张图片。因此需要首先通过split()函数将20张图片拆分成单张[1,32,32,3],再通过reshape()函数转化为三维数据[32,32,3],之后再调用图片处理函数对图片进行处理,将处理后的图片恢复成四维,然后放在数组res_arr中,拼接成原来的一组20×32×32×3的数据。
# 将一批batch_size张图片在第一维上切分为单张图片
img_arr=tf.split(x_img,batch_size,axis=0)
res_arr=[]
# 遍历每个图片对其进行处理
for img in img_arr:
# 将单张四维的图片[1,32,32,3]处理成三维[32,32,3]
img=tf.reshape(img,[32,32,3])
# 对单张图片进行图像增强
img_flip=tf.image.random_flip_left_right(img) # 翻转图片
img_bright=tf.image.random_brightness(img_flip,max_delta=63) # 随机调整亮度
img_contrast=tf.image.random_contrast(img_bright,lower=0.2, upper=1.8) # 调整对比度
# 将增强后的图片再变回原来的四维格式
img=tf.reshape(img_contrast,[1,32,32,3])
# 将每个处理后的图片放在一个数组
res_arr.append(img)
# 将处理后的单个图片重新拼接在一起
img_aug=tf.concat(res_arr,axis=0)
希望本文所述对大家Python程序设计有所帮助。
-
opencv-python图像处理教程_Python Opencv图像处理基本操作代码详解
2020-12-06 13:52:331.图像读取使用cv2.imread(filepath,flags)读入图像filepath: 读入图像完整路径(绝对路径,相对路径)flags: 读入图像标志cv2.IMREAD_COLOR:默认参数,读入一副彩色图,忽略alpha通道;可以通过1指定cv2.IMREAD_...1.图像读取
使用cv2.imread(filepath,flags)读入图像
filepath: 读入图像完整路径(绝对路径,相对路径)
flags: 读入图像标志
cv2.IMREAD_COLOR:默认参数,读入一副彩色图,忽略alpha通道;可以通过1指定
cv2.IMREAD_GRAYSCALE:读入灰度图片 也通过0指定
cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道
import cv2
img1 = cv2.imread('C:/star.png',1)
img2 = cv2.imread('C:/star.png',0)
2.图像显示
使用函数cv2.imshow(wname,img)显示图像
wname: 显示图像窗口名字
img: 图像(其实是类型矩阵)
cv2.waitKey(delay)函数的功能是不断刷新图像,频率时间为delay,单位为ms
返回值为当前键盘按键值
cv2.waitKey(0) 等待按键
import cv2
img = cv2.imread('C:/star.png',1)
print(type(img))#
cv2.imshow('img',img)
cv2.waitKey(0)
'''
#按键返回
k=cv2.waitKey(0)
if k == 27:
cv2.destroyAllWindows()
elif k == ord('s'):
cv2.imwrite('F:/gray.jpg',img)
cv2.destroyAllWindows()
'''
3.图像保存
cv2.imwrite(imageName, Image)
imageName: 需要写入的文件名就行了(包含后缀)
有第三个参数,表示为特定格式保存的参数编码,有默认值,一般不需要填写
import cv2
img = cv2.imread('C:/star.png',1)
cv2.imread('D:/star.png',img)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持python博客。
-
python图像处理教程_使用Python+opencv进行图像处理(一) | 视觉入门
2020-12-02 21:14:53计算机视觉是人工智能最热门的应用领域之一。人工智能技术推动了汽车自动驾驶、机器人以及各种照片处理类软件的...从本文开始,我们将有一系列关于图像处理和目标检测基础知识的教程。本篇是OpenCV入门教程第一部分... -
OpenCV-Python图像处理教程:图像基本操作
2018-03-14 14:25:45目录 目录 访问和修改像素值 访问图片属性 图像ROI(Region of Interest) 图像通道的分割和合并 为图像制作边框(Padding)... 注:本文翻译自openCV官网教程,为方便理解,有些许添加或者改动 [英文版链接] ... -
OpenCV-Python图像处理教程(源码及素材)
2019-06-24 20:43:38简介与安装(了解安装OpenCV-Python) | 番外篇1:代码性能优化 基本元素-图片(图片载入/显示/保存) | 番外篇2:无损保存和Matplotlib使用 打开摄像头(打开摄像头捕获图片/播放保存视频) | 番外篇3:滑动条 图像... -
python图片处理教程_Python图像入门教程:Python图像入门教程推荐
2021-02-10 04:15:12图像的镜像变化不改变图像的形状。图像的镜像变换分为三种:水平镜像、垂直镜像、对角镜像设图像的大小为M×N,则水平镜像可按公式I = iJ = N - j + 1垂直镜像可按公式I = M - i + 1J = j对角镜像可按公式I = M - i ... -
python基础教程:python图像处理入门
2020-02-14 21:04:54这篇文章主要介绍了python图像处理入门,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一、环境 由于这学期开了图像处理这门课,所以想... -
python opencv视频教程百度云_python opencv教程|python opencv图像处理教程视频完整版_ - 极光下载站...
2020-12-15 18:06:37python+opencv图像处理教程视频下载!python+opencv图像处理教程视频是Python-OpenCV 图像与视频处理教程!一直断断续续的用过几次 OpenCV,感觉熟练掌握它的使用方法已经变的非常必要了,正好找到一个很不错的英文... -
python基础教程:Python图像处理库PIL中图像格式转换的实现
2020-03-22 16:29:47这篇文章主要介绍了Python图像处理库PIL中图像格式转换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 在数字图像处理中,针对... -
基于jupyter notebook的python编程—–python的数字图像处理技巧学习(Python图像处理库:Pillow教程)
2020-12-21 18:34:31基于jupyter notebook的python编程—–python的数字图像处理目录一、python中Image类的使用方法1、使用image打开一张图片并显示2、将图片另存为新的格式的图片二、图片转成jpg格式的另一种方法1、该方法的python代码... -
Python图像处理库:Pillow 初级教程
2019-06-05 14:44:00Python图像处理库:Pillow 初级教程 转载于:https://www.cnblogs.com/LittleTiger/p/10139888.html
-
leetcode算法第三题
-
基于Qt的LibVLC开发教程
-
使用内置传感器的LED进行LED热阻和TIM评估的研究
-
辅助驾驶的哈密顿量对绝热演化是否总是有用?
-
基于杜鹃搜索的磷虾群算法解决工程优化问题
-
[记录]VisualStudio Color Theme
-
第一天学习 P5 独立键盘 矩阵键盘
-
Kubernetes下日志采集、存储与处理技术实践
-
ASHRAE_Extended_Environmental_Envelope_Final_Aug_1_2008.pdf
-
FastDFS 分布式文件系统部署
-
-191-4-源码
-
物联网之mqtt实现(emqx+springboot+mqtt附源码)
-
完美配置CentOS+Nginx+MySQL+PHP(LNMP)网站环境
-
spark大数据分析与实战
-
通过新颖的二元君主蝶优化算法解决0-1背包问题
-
STM32F373XXDataSheet.zip
-
【Python-随到随学】 FLask第一周
-
2021-02-25
-
项目经理成长之路
-
做了一套模拟卷2021年2月25日02:36:43