首页 > 编程语言 >Python实例讲解 -- 图片处理

Python实例讲解 -- 图片处理

时间:2023-03-26 21:32:09浏览次数:56  
标签:PIL 模块 img Python Image -- 实例 图像处理


虽然图像处理的最佳工具是MATLAB的图像处理工具箱,但是在进行一些“简单的”图像处理任务或者大批量的简单图像处理任务的时候,Python图像处理的方法更有优势。

 

1.引言:

 

提到图像处理,人们通常想到的工具是MATLAB。诚然,MATLAB提供了一个强大的图像处理工具箱。但是,对于简单的图像处理任务而言,采用一 种高级的语言将起到事半功倍的效果。Python无疑就是实现这一功能的理想选择。Python的面向对象、弱数据类型等等特性都使得用它来进行简单的图 像处理的时候非常的简洁方便。

 

 

2.简介:

 

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

 

在PIL中,任何一副图像都是用一个Image对象表示,而这个类由和它同名的模块导出,因此,要加载一副图像,最简单的形式是这样的:

 

from PIL import Image 
img = Image.open("img.jpg")

注意:第一行的Image是模块名;第二行的img是一个Image对象; Image类是在Image模块中定义的。关于Image模块和Image类,切记不要混淆了。现在,我们就可以对img进行各种操作了,所有对img的 操作最终都会反映到到dip.img图像上。

 

PIL提供了丰富的功能模块:Image,ImageDraw,ImageEnhance,ImageFile等等。

 

最常用到的模块是 Image,ImageDraw,ImageEnhance这三个模块。下

 

面我对此分别做一介绍。关于其它模块的使用请参见说明文档.有关PIL软件包和 相关的说明文档可在PythonWare的站点www.Pythonware.com上获得。

 

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

example: http://www.pythonware.com/library/pil/handbook/image.htm

 

 

3.Image模块:

 

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

 

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

 

from PIL import Image 
img = Image.open("img.jpg")

 

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

 

(2)调整图像大小:

 

from PIL import Image 
img = Image.open("img.jpg")   
new_img = img.resize((128,128),Image.BILINEAR)   
new_img.save("new_img.jpg")

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

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

 

(3)旋转图像:

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

 

from PIL import Image 
img = Image.open("img.jpg")   
new_img = img.resize((128,128),Image.BILINEAR)   
rot_img = new_img.rotate(45)   
rot_img.save("rot_img.jpg")

总结:

在批处理或者简单的Python图像处理任务中,采用Python和PIL(Python Image Library)的组合来完成图像处理任务是一个很不错的选择。设想有一个需要对某个文件夹下的所有图像将对比度提高2倍的任务。用Python来做将是 十分简单的。当然,我也不得不承认Python在图像处理方面的功能还比较弱,显然还不适合用来进行滤波、特征提取等等一些更为复杂的应用。我个人的观点 是,当你要实现这些“高级”的算法的时候,好吧,把它交给MATLAB去完成。但是,如果你面对的只是一个通常的不要求很复杂算法的图像处理任务,那 么,Python应该才是你的最佳搭档。

 

 

 

 

 

标签:PIL,模块,img,Python,Image,--,实例,图像处理
From: https://blog.51cto.com/u_8895844/6150865

相关文章

  • Python实例讲解 -- 磁盘文件的操作
    在文件夹里有六十多个RM格式的视频文件,我现在需要把它们的文件名都提取出来,并去掉文件的扩展名,以便放到需要的网页里。 应该有什么软件可以完成这个简单的要求,可是一时间到......
  • 初学Python,版本如何选择?
     早在四年多以前,在我进入英才网之前,去面试过一家海归创业的公司。他们需要的是有unix开发经验的技术人员,但是因为他们当时所处的阶段对很多成熟技术人员不是很吸引,所......
  • carla 传感器
    一、Blueprints和Actor之间的关系Blueprints是carla生成Actor的模板,Actor包括Sensors\Spectator\Trafficsignsandtrafficlights\Vehicles\WalkersActor的操作包括生......
  • wordpress 修改上传文件大小限制
    1.新建phpinfo.php文件,通过网页访问。<?phpphpinfo();?>2.在phpinfo网页上找到php.ini所在目录。3.用nano打开php.ini文件并找到下面配置字段,修改成你想要的数值。......
  • Java定时任务
    定时任务Timer​JDK​自带的Timer​和TimerTask​可用于创建定时任务,其中TimerTask继承了Runnable接口,重写runnable接口就行.观察源码可知,构造函数中启动了一个......
  • 3.26web和android端地铁查询开发学习总结
    web端的思想在前面已经写了,Android端的思想跟web端差不多少,其中不一样的就是连接MySQL数据库,其要求的jar包是5版本左右的,而且还涉及到线程的问题,在连接MySQL的时候要另外启......
  • python_数据分析与挖掘实战_洗浴事件
    importpandasaspdimportmatplotlib.pyplotaspltinputfile='./data/original_data.xls'#'./demo/data/original_data.xls'#输入的数据文件data=pd.read_e......
  • 雪碧图
    雪碧图CSSSprite也叫CSS精灵图,CSS雪碧图,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含一张大图中去优点减少图片的字节减少网页的ht......
  • 视觉SLAM中的三角化
    视觉SLAM中的三角化考虑某路标点\(y\)在若干个关键帧\(k=1,···,n\)中看到。\(\mathbf{y}\in\mathbb{R}^{4}\),取齐次坐标。每次观测为\(\mathbf{......
  • ChatGPT中文版怎么用,免费版本分享,GPT官网入口
         ChatGPT的官网入口是(openai.com),虽然在国内可以访问网站,但是无法使用它提供的服务,因为需要国外IP才能注册账号,而且需要国外手机短信验证才能正常注册。  ......