python图像处理接口
来源:互联网 发布:知乎杭州电子科技大学 编辑:程序博客网 时间:2024/06/01 18:56
#http://pillow.readthedocs.org/en/latest/index.html#官方接口说明# #coding:utf-8# import os, sys# from PIL import Image# sys.argv.append("图片路径")#图片路径'''Image 类'''# im = Image.open(sys.argv[1])# print(im.format,im.size,im.mode)#format定义格式,size表示宽X高,mode表示模式# # L灰度,RGB真彩,CMYK pre-press## size = (32,32)# im.thumbnail(size)#转换大小# im.save("/home/zyh/picture/the.jpg")#将打开的文件格式转换成jpg#'''读写图片'''# #将图片转换成jpg格式## for infile in sys.argv[1:]:#在终端运行时,加入的文件参数# f,e = os.path.splitext(infile)#分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作# outfile = f +".jpg"# # print e 输出图片格式# if infile != outfile:# try:# Image.open(infile).save(outfile)# except IOError:# print("can't convert", infile)# #创建缩略图## size = (16,16)# for infile in sys.argv[1:]:# outfile = os.path.splitext(infile)[0]+".thumbnail"# if infile != outfile:# try:# im = Image.open(infile)# im.thumbnail(size)# im.save(outfile,"JPEG")# except IOError:# print("can't creat thumbnail for",infile)# #确定图片属性# for infile in sys.argv[1:]:# try :# # with Image.open(infile) as im:#不知道为什么不对啊# im = Image.open(infile)# print(infile,im.format,"%d x %d"%im.size,im.mode)# except IOError:# pass'''从图片中裁剪,粘贴,合并图片'''# for infile in sys.argv[1:]:# try :# im = Image.open(infile)# outfile = os.path.splitext(infile)[0]## #从图片中复制子图## # box = im.copy()#复制图片# box = (im.size[0]/3,im.size[1]/3,im.size[0]*2/3,im.size[1]*2/3)#左上角为原点,left ,upper,right,lower# region = im.crop(box)#从图片中提取子矩阵,## #处理子图,粘贴回原图## region = region.transpose(Image.ROTATE_180)#旋转180度# im.paste(region,box)#将子图paste(粘贴)回原图,子图的region和原图吻合,# im.save(outfile+"box.jpeg")# except IOError:# pass# #rolling an Image## def roll (image,delta):# '''Roll an image sideways'''# image = image.copy()# xsize,ysize = image.size# delta = delta%xsize# if delta ==0 : return image## part1 = image.crop((0,0,delta,ysize))# part2 = image.crop((delta,0,xsize,ysize))# image.paste(part2,(0,0,xsize-delta,ysize))# image.paste(part1,(xsize-delta,0,xsize,ysize))## return image## for infile in sys.argv[1:]:# try :# im = Image.open(infile)# outfile = os.path.splitext(infile)[0]## #从图片中复制子图# roll(im.copy(),300).save(outfile+"roll.jpeg")# #im.save(outfile+"box.jpeg")# except IOError:# pass # #分离合并通道# for infile in sys.argv[1:]:# try :# im = Image.open(infile)# outfile = os.path.splitext(infile)[0]# r,g,b= im.split()#对于单通道图片,split()返回图像本身# im = Image.merge("RGB",(b,r,g))#转换(RGB)的位置# im.save(outfile+"tongdao.jpeg")# #im.save(outfile+"box.jpeg")# except IOError:# pass#''' 几何变换'''# for infile in sys.argv[1:]:# try :# im = Image.open(infile)# outfile = os.path.splitext(infile)[0]# #简单的几何变换## out = im.resize((64,64))# 改变大小# out = im.rotate(30) # 顺时针角度表示# out.save(outfile+"jihe简单.jpeg")# #置换图像# out = im.transpose(Image.FLIP_LEFT_RIGHT) #左右调换# out.save(outfile+"jiheLR.jpeg")# out = im.transpose(Image.FLIP_TOP_BOTTOM) #上下调换# out.save(outfile+"jiheTB.jpeg")# out = im.transpose(Image.ROTATE_90) #右旋90,可以用rotate替换# out.save(outfile+"jiheR45.jpeg")# out = im.transpose(Image.ROTATE_180)# out.save(outfile+"jiheR180.jpeg")# out = im.transpose(Image.ROTATE_270)## out.save(outfile+"jiheR270.jpeg")# #im.save(outfile+"box.jpeg")# except IOError:# pass'''模式转换'''## for infile in sys.argv[1:]:# try :# im = Image.open(infile)# outfile = os.path.splitext(infile)[0]# #简单的几何变换# out = im.convert("L")# out.save(outfile+"convertL.jpeg")# except IOError:# pass'''图像增强()'''# for infile in sys.argv[1:]:# try :# im = Image.open(infile)# outfile = os.path.splitext(infile)[0]# #简单的几何变换## from PIL import ImageFilter# out = im.filter(ImageFilter.DETAIL)# out.save(outfile+"filter.jpeg")# except IOError:# pass'''像素点处理'''# for infile in sys.argv[1:]:# try :# im = Image.open(infile)# outfile = os.path.splitext(infile)[0]## #像素点变换## out = im.point(lambda i: i * 0.3)#每个像素乘0.3,通过point和paste选择性的处理图片的某一区域# out.save(outfile+"point.jpeg")## #处理单独通道## source = im.split()# R,G,B = 0,1,2## # select regions where red is less than 100# mask = source[R].point(lambda i: i<100 and 255)# #mask参数用法:当为0时,保留当前值,255为使用paste进来的值,中间则用于transparency效果## # process the green band# out = source[G].point(lambda i: i*10)## # paste the processed band back, but only where red was < 100# source[G].paste(out,None,mask)## im=Image.merge(im.mode,source)# im.save(outfile+"tongdao.jpeg")# except IOError:# pass
1 0
- python图像处理接口
- python-opencv-matlab图像处理接口关系
- 【图像处理】Ubuntu安装OpenCV 3.0以及Python接口
- Python 图像处理详解
- python图像处理示例
- 初识python图像处理
- 【图像处理】python-ImageDraw
- python 处理图像
- python图像处理2
- Python中的图像处理
- python-scipy 图像处理
- python 图像处理初步
- python 图像直方图处理
- python处理图像
- Python 处理图像水印
- python 图像处理
- Python 高级图像处理
- Python图像处理库
- 【技巧】将Sublime Text 添加到鼠标右键的方法
- 超全!整理常用的iOS第三方资源
- You have set Tablespace Full Metrics Threshold values for the USERS tablespace as follows: Warning (
- [iOS]CocoaPods使用小结
- 已知后序中序序列求先序序列
- python图像处理接口
- 2015年十大热门Android开源新项目
- 物理层的主要功能
- 对于二叉树三种非递归遍历方式的理解
- 李航《统计学习方法》读书笔记(1):朴素贝叶斯分类
- HDU 2544 最短路(Dijkstra)
- ThreadPoolExecutor详解
- week1——并查集
- XML——解析XML文档