最近需要学习python的图像处理方法,在这里简单的总结一下自己学到的一些图像处理的方法把~
1.Python PIL库读取图像
import PIL
from PIL import Image
im = Image.open(filepath)
2.简单进行图像旋转
out = im.rotate(270) #这里输入的是旋转角度
out = im.transpose(Image.ROTATE_270)
3.在PIL中还可以吧RGB图像的R,G,B分离出来使用的呢;例如:
r,g,b = im.spilt()
im = Image.merge("RGB",(r,b,g))
#这样R,G,B就调换成了R,B,G来使用了,也就是说B的值当R来使用这个意思
4、图像增强,可以增强一下对比度
from PIL import ImageEnhance as ie
enh = ie.Contrast(image)
enh.enhance(1.3).show("30% enhance")
5、利用Image模块还可以创建thumnail
import glob
for infile in glob.glob("*.jpg"):
file, ext = os.splitext(infile)
im = Image.open(infile)
im.thumbnail((128, 128), Image.ANTIALIAS)
im.save(file + ".thumbnail", "JPEG")
下面来介绍一下Image模块下的一些函数:
1=》Image.new(mode,size)/Image.new(mode,size,color)
这个是新创建一张图片
2=》Image.open(infile)/Image.open(infile,mode)
这个是打开一张图片,打开的这张图片呢,在你对这张图片进行操作之前是不会读取进来的,在你进行操作的时候就读进来
如果指定了mode的话,那一定是“r“
3=》Image.blend(image1,image2,alpha)
out = image * (1-alpha) + image2 * alpha
看看out你就知道了什么意思了,当alpha是0时,输出的就是image1,当alpha是1时,输出的就是image2
但是两个图像的大小需要一致的
4=》Image.composite(image1,image2,mask)
利用mask当做是alpha,创建一张在image1,image2之间的新图像
5=》Image.eval(function,image)
6=>Image.fromstring(mode,size,data)/Image.fromstring(mode,size,data,decoder,parameters)
对于第一个,就是从一个string中的像素数据中创建图像,使用的解码器是”raw“;第二个就是自选decoder了
7=>Image.merge(mode,bands)