返回顶部
首页 > 资讯 > 后端开发 > Python >Python之简单的图像处理
  • 789
分享到

Python之简单的图像处理

图像处理简单Python 2023-01-31 07:01:09 789人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

参考:Http://justcoding.iteye.com/blog/901605       http://www.iteye.com/topic/314790      pythonWare公司提供了免费的Python图像处理工具包P

参考:Http://justcoding.iteye.com/blog/901605

      http://www.iteye.com/topic/314790

     pythonWare公司提供了免费的Python图像处理工具包PIL(Python Image Library),该软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等 等。虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是Python的快速开发能力以及面向对象等等诸多特点使得它非常适 合用来进行原型开发。

    默认安装python的时候没有安装PIL库,需要安装(只在windows测试)。

    download: http://www.pythonware.com/products/pil/index.htm

 

下载后默认安装即可。

打开图片

1.导入pil的Image模块


2.使用open(filename)打开文件,返回一个p_w_picpath对象

Python代码  收藏代码
  1. im = Image.open('filename')  


此后,一切关于图片的操作均基于这个对象。



 

打 开后,我们可以查看一些图片信息,如im.fORMat, im.size, im.mode等。调用im.show()会在图片查看工具中显示当前操作的p_w_picpath对象,这个跟个人的系统有关系,我系统中默认是用Windows Picture and Fax Viewer打开的。这个方法用来查看临时的图片效果。

读写图片
pil 中转换图片格式非常简单(转换图片模式是另一个概念,不要混淆),只需要调用img.save(filename)即可比如有一个bmp(位图)图片,使 用img = Image.open('file.bmp')打开后,只需要img.save('file.jpg')即可转换。不过一般情况 下,save(filename)是不用做这个用途的,通常,save用以保存一个临时的p_w_picpath对象到硬盘。而转换工作由一个功能更为强大的 convert()方法来完成。


拷贝,粘贴,合并

Python代码  收藏代码
  1. box = (100,100,500,500)#设置要拷贝的区域  
  2.   
  3. #将im表示的图片对象拷贝到region中,大小为(400*400)像素。这个region可以用来后续的操作(region其实就是一个Image对象),box变量是一个四元组(左,上,右,下)。  
  4. region = im.crop(box)  
  5.   
  6. region = region.transpose(Image.ROTATE_180)#从字面上就可以看出,先把region中的Image反转180度,然后再放回到region中。  
  7. im.paste(region, box)#粘贴box大小的region到原先的图片对象中。  

 

前面说过,每一个RGB都是由三个通道的灰度图叠加的,所以pil提供了将这三个通道分离的方法

Python代码  收藏代码
  1. r,g,b = im.split()#分割成三个通道  
  2. r.show()  
  3. g.show()  
  4. b.show()  
  5. im = Image.merge("RGB", (b, g, r))#将b,r两个通道进行翻转。  

 

红色通道的灰度图



 绿色通道的灰度图



 蓝色通道的灰度图

 



 
 互换红蓝通道后的合成图

 

几何转变
几何转变提供resize,rotate等方法,用以重定义图片大小,对图片进行旋转等操作,在实际应用中比较广泛。

Python代码  收藏代码
  1. out = img.resize((128, 128))#resize成128*128像素大小。  
  2. out = img.rotate(45)#逆时针旋转45度  


逆时针45度



 
 镜面效果,左右翻转

transpose()方法预定义了一些旋转方式,如
左右反转,上下翻转,逆时针旋转(90,180,270)度等,非常方便,rotate()和transpose()方法在表现上没有任何不同。

图片加强


滤镜
ImageFilter模块提供了很多预定义的图片加强滤镜。
比如一个常用的滤镜,细节(detail滤镜)

Python代码  收藏代码
  1. import ImageFilter  
  2. out = im.filter(ImageFilter.DETAIL)  



 

直接操作像素点
不但可以对每个像素点进行操作,而且,每一个通道都可以独立的进行操作。比如,将每个像素点的亮度(不知道有没有更专业的词)增大20%

Python代码  收藏代码
  1. out = img.point(lambda i : i * 1.2)#注意这里用到一个匿名函数(那个可以把i的1.2倍返回的函数)  



对每个点都做20%的增强

 

如上边的那个例子,我们可以将一个RGB模式的图分离成三个通道的层

Python代码  收藏代码
  1. r,g,b = img.split()#神奇而又强大的python语法  



然后对一个通道进行加强或减弱操作,完成后我们又可以使用Merge将通道合并,从而改变图片的色调(冷暖色调的互换)等。

更高级的图片加强,可以使用ImageEnhance模块,其中包含了大量的预定义的图片加强方式。

Python代码  收藏代码
  1. import ImageEnhance  
  2. enh = ImageEnhance.Contrast(im)  
  3. enh.ehhance(1.5).show("50% more contrast")  


 

读写图片的更多方式
通常,我们使用open方法进行图片的打开操作。但是这不是唯一的方式。完全可以跟python的IO整合起来。如

Python代码  收藏代码
  1. fp = open("file.jpg", "rb")  
  2. im = Image.open(fp)  

 

甚至,你可以从一个字符串中读出图片数据来(python真是神奇啊)。

Python代码  收藏代码
  1. import StringIO  
  2. img = Image.open(StringIO.StringIO(buffer))  

下面是另一个参考:

Image模块是PIL最基本的模块,其中导出了Image类,一个Image类实例对象就对应了一副图像。同时,Image模块还提供了很多有用的函数。

(1)打开一副图像文件:

Python代码  收藏代码
  1. from PIL import Image   
  2. img = Image.open("img.jpg")  

这将返回一个Image类实例对象,后面的所有的操作都是在img上完成的。

(2)调整图像大小:

Python代码  收藏代码
  1. from PIL import Image   
  2. img = Image.open("img.jpg")     
  3. new_img = img.resize((128,128),Image.BILINEAR)     
  4. new_img.save("new_img.jpg") 

原来的图像大小是256x256,现在,保存的new_img.jpg的大小是128x128。

就是这么简单,需要说明的是Image.BILINEAR指定采用双线性法对像素点插值。

(3)旋转图像:

现在我们把刚才调整过大小的图像旋转45度:

Python代码  收藏代码
  1. from PIL import Image   
  2. img = Image.open("img.jpg")     
  3. new_img = img.resize((128,128),Image.BILINEAR)     
  4. rot_img = new_img.rotate(45)     
  5. rot_img.save("rot_img.jpg")   

--结束END--

本文标题: Python之简单的图像处理

本文链接: https://lsjlt.com/news/191345.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python之简单的图像处理
    参考:http://justcoding.iteye.com/blog/901605       http://www.iteye.com/topic/314790      PythonWare公司提供了免费的Python图像处理工具包P...
    99+
    2023-01-31
    图像处理 简单 Python
  • 图形图像处理之简单图片
    决定Android应用是否被用户接受的一个重要的原因就是用户界面,友好的用户界面就需要使用到图形图像处理技术,包括静态图片、动画和游戏都需要大量的图形图像处理,所谓游戏,其实就是提供更逼真,能模拟某种环境的用户界面,并根据某种规则响应用户的...
    99+
    2023-06-04
  • python数字图像处理之图像简单滤波实现
    目录引言1、sobel算子2、roberts算子3、scharr算子4、prewitt算子5、canny算子6、gabor滤波7、gaussian滤波8、median9、水平、垂直边...
    99+
    2024-04-02
  • Python图像处理之图像拼接
    目录一、前言二、特征点匹配三、匹配错误的特征点干扰四、消除干扰五、RANSAC进行图像匹配六、总结一、前言 图像拼接技术就是将数张有重叠部分的图像(可能是不同时间、不同视角或者不同传...
    99+
    2024-04-02
  • python数字图像处理之图像的批量处理
    目录正文图片集合函数批量读取批量转换为灰度图批量保存正文 有些时候,我们不仅要对一张图片进行处理,可能还会对一批图片处理。这时候,我们可以通过循环来执行处理,也可以调用程序自带的图片...
    99+
    2024-04-02
  • Python图像处理之图像量化处理详解
    目录一.图像量化处理原理二.图像量化实现三.图像量化等级对比四.K-Means聚类实现量化处理五.总结一.图像量化处理原理 量化(Quantization)旨在将图像像素点对应亮度的...
    99+
    2024-04-02
  • opencv python简易文档之图像处理算法
    目录将图片转为灰度图HSV图像阈值图像平滑形态学-腐蚀操作形态学-膨胀操作开运算与闭运算梯度运算礼帽与黑帽图像梯度处理Canny边缘检测图像金字塔图像轮廓直方图直方图均衡化:自适应均...
    99+
    2024-04-02
  • Python中的图像处理之Python图像平滑操作
    目录前言一. Python准备二. Python仿真三. 小结前言 随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Python语言的简洁性、易读性以及可扩展性,特别...
    99+
    2024-04-02
  • Python图像处理之模糊图像判断
    目录上期回顾采用Laplace算子的原因实现的效果图片素材代码的展示与讲解效果展示项目资源上期回顾 上一次的图像清晰度评价没有成功,主要的原因是那几张图像清晰度评价函数都实际都采用了...
    99+
    2022-12-08
    Python模糊图像判断 Python模糊图像 Python模糊 判断
  • Python图像处理之PIL库
    本篇文章给大家带来了关于python的相关知识,其中主要整理了PIL库的相关问题,PIL库是一个具有强大图像处理能力的第三方库,不仅包含了丰富的像素、色彩操作功能,还可以用于图像归档和批量处理,下面一起来看一下,希望对大家有帮助。要点:PI...
    99+
    2022-06-23
    python
  • Java基础之简单的图片处理
    目录一、前言二、依赖三、封装数据类四、常量类五、图像处理类六、效果图一、前言 先使用一个模板图片,在图片上添加图片或者文字都可以。 二、依赖 <dependency>...
    99+
    2024-04-02
  • Python图像处理之图像金字塔详解
    目录一.图像金字塔原理二.图像向上取样三.图像向下取样四.总结一.图像金字塔原理 上一篇文章讲解的图像采样处理可以降低图像的大小,本文将补充图像金字塔知识,了解专门用于图像向上采样和...
    99+
    2024-04-02
  • Python图像处理之图像清晰度评价
    目录0、实现效果1、概述2、模糊度分类3、清晰度量化指标Brenner能量梯度函数(Energy of Gradient)RobertsLaplaceSMD(灰度方差)函数SMD2 ...
    99+
    2022-12-08
    Python图像清晰度评价 Python图像清晰度 Python 清晰度
  • Python图像处理之图像与视频处理基础教程
    目录图像与视频处理基础0. 前言1. 在 3D 空间中显示 RGB 图像颜色通道1.1 图像表示1.2 在 3D 空间中绘制颜色通道2. 使用 scikit-video 读/写视频文...
    99+
    2023-05-15
    Python图像处理 Python图像与视频处理 Python视频处理
  • Python图像处理之图像的灰度线性变换
    目录一.图像灰度线性变换原理二.图像灰度上移变换三.图像对比度增强变换四.图像对比度减弱变换五.图像灰度反色变换一.图像灰度线性变换原理 图像的灰度线性变换是通过建立灰度映射来调整原...
    99+
    2024-04-02
  • Python图像处理之图像增广算法详解
    目录前言图像增广算法a.图像旋转b.图像亮度调整c.图像裁剪及拼接本章小结前言 图像增广算法在计算机视觉领域扮演着至关重要的角色。随着深度学习的兴起,大规模数据集的需求变得更加迫切,...
    99+
    2023-05-20
    Python图像增广算法 Python图像处理 Python 算法
  • python 对图片进行简单的处理
    目录安装Pillow包图片划线图片写字图片加图片水印图片模糊图片截取总结安装Pillow包 pip install Pillow 图片划线 from PIL import Image, ImageDraw...
    99+
    2022-06-02
    python 图片处理
  • Java数字图像处理之图像灰度处理
    本文实例为大家分享了Java数字图像处理基础之图像灰度处理,供大家参考,具体内容如下 一、简介 图像灰度化处理可以作为图像处理的预处理步骤,在图像处理中是十分重要的一件事。灰度图像上...
    99+
    2024-04-02
  • Python图像处理【3】Python图像处理库应用
    Python图像处理库应用 0. 前言1. 将 RGB 图像转换为灰度图像算法1.1 算法原理3.2 算法实现 2. 使用 PIL 库计算图像差异2.1 算法原理2.2 算法实现 ...
    99+
    2023-09-06
    python 图像处理 计算机视觉
  • python之数字图像处理方式
    目录基本概念图像增强整体代码线性变换分段线性变换对数变换幂律变换直方图图像滤波平滑图像锐化图像总结基本概念 数字图像定义 对于一幅图像,我们可以将其放入坐标系中,这里取图像左上定点为...
    99+
    2023-05-19
    python数字图像处理 python数字图像 python图像处理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作