第一章 基本的图像操作和处理
1.1PIL:Pyhton的图像处理类库
from PIL import Image
pil_img = Image.open("图片地址")
pil_img就是一个PIL的图像对象
图像的颜色转换方法convert
转换成灰度图像.convert("L")
1.1.1转换图像格式
Image.save()open函数用于创建PIL的图像对象而save方法用于保存图像到具体指定文件名的文件
PIL函数会进行简单的检查,如果不是jpeg会自动进行转换
1.1.2创建缩略图
函数:thumbnail():接受一个元组参数,用于指定生成的缩略图的代销,然后将图像转换成符合元组参数的制定大小的缩略图。
eg.pill_img.thumbnail((128,128))
1.1.3赋值和粘贴图像区域
函数:crop:可以从一幅图像中裁剪指定区域
一个四元组用来表示(←,↑,→,↓)
PIL坐标系,左上角为(0,0)
获取了一定的区域然后使用paste的方法将区域放回去
1.1.4
条恒尺寸和旋转
函数:resize同样用元组表示大小,可以调整图片的尺寸
函数:rotate用数字表示逆时针旋转
1.2Matplotlib
1.2.1绘制图像点和线
eg.
from PIL import Image
from pylab import *
im = array(Image.open("图片路径")
imshow(im)绘制图像
x = [1,1,4,4]点
y = [2,5,2,5]点
plot(x,y,"r*")点上色(红)
plot(x[:2],y[:2])
title('title_name:"图片名')
show()
pylab中的一些格式
.点
O圈
s正方形
*型号
+加号
X叉号
1.2.2图像轮廓和直方图
figure()创建图像
show()显示图像
绘制图像等轮廓线:contour(im,origin = "image")
直方图:hist(im.flatten(),128) flatten参数用来将多维数组转化成一维数组,hist函数的第二格参数是小区间的数目
1.2.3交互式标注
ginput()交互式标注点
1.3NumPy(nmb怎么装怎么GG)
python科学计算工具包
1.3.1图像数组的表示
类型一般默认为uint 8位
可以自行声明 float double
数组中的元素可以通过下标访问 value = im[i,j,k] i行j列k为颜色通道
多个数组元素的访问方法:切片
im[i,:] = im[j,:]把第j行的元素赋值给第i行的元素
im[:,:]访问所有元素前面的冒号代表行,后面的冒号代表列,中间用逗号隔开
1.3.2灰度变换
反转:像素数-im(黑变白,白变黑)
归一:分数*im(用于取原区间的前部分) + 一个数(取从这个数为基数往上的区间)(颜色归一,向该数靠拢)
加重:平方(使暗的更暗)
1.3.3图像缩放(同上)
1.3.4直方图均衡化
灰度变换中的一个有用的例子,指的是将一幅图像的灰度直方图扁平,是变幻后的图像中每个灰度值的分布概率都相同,在对图像作进一步处理之前,直方图均衡化通常是对图像灰度值进行归一化的一个非常好的方法,并且可以增强图像的对比度。