python简单图片操作:打开\显示\保存图像方法介绍

 更新时间:2017年11月23日 08:45:58   作者:denny402  
这篇文章主要介绍了python简单图片操作:打开\显示\保存图像方法介绍,还涉及将图片保存为灰度图的简单方法示例,具有一定参考价值,需要的朋友可以了解下。

一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点:

1、不开源,价格贵

2、软件容量大。一般3G以上,高版本甚至达5G以上。

3、只能做研究,不易转化成软件。

因此,我们这里使用python这个脚本语言来进行数字图像处理。

要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的。

要使用python进行各种开发,就必须安装对应的库。这和matlab非常相似,只是matlab里面叫工具箱(toolbox),而python里面叫库或包。安装这些库,一般都是使用pip来安装。

使用python进行数字图片处理,还得安装Pillow包。虽然python里面自带一个PIL(python images library), 但这个库现在已经停止更新了,所以使用Pillow, 它是由PIL发展而来的。

pip install Pillow

一、图片的打开与显示

from PIL import Image
img=Image.open('d:/dog.png')
img.show()

虽然使用的是Pillow,但它是由PIL fork而来,因此还是要从PIL中进行import. 使用open()函数来打开图片,使用show()函数来显示图片。

这种图片显示方式是调用操作系统自带的图片浏览器来打开图片,有些时候这种方式不太方便,因此我们也可以使用另上一种方式,让程序来绘制图片。

from PIL import Image
import matplotlib.pyplot as plt
img=Image.open('d:/dog.png')
plt.figure("dog")
plt.imshow(img)
plt.show()

这种方法虽然复杂了些,但推荐使用这种方法,它使用一个matplotlib的库来绘制图片进行显示。matplotlib是一个专业绘图的库,相当于matlab中的plot,可以设置多个figure,设置figure的标题,甚至可以使用subplot在一个figure中显示多张图片。matplotlib 可以直接安装

pip install matplotlib

figure默认是带axis的,如果没有需要,我们可以关掉

plt.axis('off')

打开图片后,可以使用一些属性来查看图片信息,如

print img.size #图片的尺寸
print img.mode #图片的模式
print img.format #图片的格式

显示结果为:

(558, 450)
RGBA
PNG

二、图片的保存

img.save('d:/dog.jpg')

就一行代码,非常简单。这行代码不仅能保存图片,还是转换格式,如本例中,就由原来的png图片保存为了jpg图片。

再介绍下图片保存为灰度图的简单操作,非常简单,打开图片并转换成灰度图的方法是:

im = Image.open('a.jpg').convert('L)

转换图像格式:

im.save('aa.gif')

以上代码把a.jpg 打开并转换成灰度图(像素值在0-255之间),然后保存成aa.gif格式。可以把上一行代码中‘aa.gif'改成路径加文件名,就可以保存到自己想要保存的地方了。

总结

以上就是本文关于python简单图片操作:打开\显示\保存图像方法介绍的全部内容,希望对大家有所帮助。有什么问题欢迎留言指出。

相关文章

  • Flask框架实现给视图函数增加装饰器操作示例

    Flask框架实现给视图函数增加装饰器操作示例

    这篇文章主要介绍了Flask框架实现给视图函数增加装饰器操作,结合实例形式分析了flask框架视图添加装饰器的具体操作方法及相关注意事项,需要的朋友可以参考下
    2018-07-07
  • python OpenCV计算图片相似度的5种算法

    python OpenCV计算图片相似度的5种算法

    本文主要介绍了python OpenCV计算图片相似度的5种算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • python os.listdir()乱码解决方案

    python os.listdir()乱码解决方案

    在本篇文章里小编给大家整理的是一篇关于python os.listdir()乱码解决方案,对此有兴趣的朋友们可以学习下。
    2021-01-01
  • pytorch torch运算操作示例详解

    pytorch torch运算操作示例详解

    这篇文章主要介绍了pytorch torch运算的相关知识,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • 基于python实现学生管理系统

    基于python实现学生管理系统

    这篇文章主要为大家详细介绍了基于python实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • exe反编译为.py文件的方法

    exe反编译为.py文件的方法

    本文主要介绍了exe反编译为.py文件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python中的线程操作模块(oncurrent)

    Python中的线程操作模块(oncurrent)

    这篇文章介绍了Python中的线程操作模块(oncurrent),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • python切片作为占位符使用实例讲解

    python切片作为占位符使用实例讲解

    在本篇内容里小编给大家分享的是一篇关于python切片作为占位符使用实例讲解内容,有兴趣的朋友们可以学习参考下。
    2021-02-02
  • Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解

    Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解

    这篇文章主要介绍了Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容方法详解,需要的朋友可以参考下
    2020-02-02
  • 用pycharm开发django项目示例代码

    用pycharm开发django项目示例代码

    这篇文章主要介绍了用pycharm开发django项目示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10

最新评论