python 简单图片处理

夙愿已清 提交于 2020-02-23 14:37:08

安装:
python 2.7
pythoncharm
anaconda2

课本中要求装PIL库,但是我操作了很多方法也没有装成功,一直提示我缺少安装工具tools,所以我询问助教后他帮我安装了anaconda2。
一.基本的图像操作和处理
原图片:
在这里插入图片描述
1.原图—灰度图
在这里插入图片描述在教材的代码中修改图片路径

2.图像轮廓和直方图
图像轮廓线和图线等高线。在画图像轮廓前需要转换为灰度图像,因为轮廓需要获取每个坐标[x,y]位置的像素值。
在这里插入图片描述
在这里插入图片描述
3.借助numpy对图像进行灰度变换

在前面载入图像中,我们将图像用array()函数转为NumPy数组对象。数组就像列表一样,只不过它规定了数组中的所有元素必须是相同的类型。下面的例子用于说明图像数组表示,运行下面面代码,会给出下面结果:
在这里插入图片描述
4.灰度变换
在读入图像到NumPy数组后,就可以对它进行任何我们想要的操作:对图像进行灰度变换。
在这里插入图片描述
上面左边灰度变换函数采用的是f(x)=255-x,中间采用的是f(x)=(100/255)x+100,右边采用的是变换函数是f(x)=255(x/255)^2。运行上面代码,可以得到P009 Fig1-5中的结果:
在这里插入图片描述
5.调整图像尺寸

NumPy数组将成为我们对图像及数据进行处理的最主要工具,但是调整矩阵大小并没有一种简单的方法。我们可以用PIL图像对象转换写一个简单的图像尺寸调整函数:
在这里插入图片描述
上面定义的调整函数,在imtools.py中可以找到。

6.直方图均衡化
一个极其有用的例子是灰度变换后进行直方图均衡化。图像均衡化作为预处理操作,在归一化图像强度时是一个很好的方式,并且通过直方图均衡化可以增加图像对比度。下面是对图像直方图进行均衡化处理的例子:
在这里插入图片描述
这里修改了hist()的参数
在这里插入图片描述
hist()函数的参数
在这里插入图片描述
bins指bin(箱子)的个数,即每张图柱子的个数
figsize指每张图的尺寸大小

7.图像平均
对图像取平均是一种图像降噪的简单方法,经常用于产生艺术效果。假设所有的图像具有相同的尺寸,我们可以对图像相同位置的像素相加取平均,下面是一个演示对图像取平均的例子:
平均后图像
在这里插入图片描述
在这里插入图片描述
原图像
在这里插入图片描述

8.高斯模糊
一个经典的并且十分有用的图像卷积例子是对图像进行高斯模糊。高斯模糊可以用于定义图像尺度、计算兴趣点以及很多其他的应用场合。下面是对图像进行模糊:在这里插入图片描述
在这里插入图片描述上面第一幅图为待模糊图像,第二幅用高斯标准差为2进行模糊,第三幅用高斯标准差为5进行模糊,最后一幅用高斯标准差为10进行模糊。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!