图片预处理方法

1.from PIL import Image

 

一.RGB 转换为其他模式图片

打开图片:Image.open('picture_path')

example:

  pic = Image.open('1.rgb')

查看图片模式:

example:

  pic.mode

查看图像有多少个像素点:pic.size

取像素值:

  pic.getpixel((x,y))

  得到R,G,B三个通道的像素值如(1,2,10)

 

 

图像模式转换:pic.convert('模式')

模式‘1’:二值图像,非黑即白。但是它每个像素用8个bit表示,0表示黑,255表示白,只有1个通道,类似灰度图像,但是像素只有0,255两个可选值,1-244之间的值取不到

模式L”:灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度

在PIL中,从模式“RGB”转换为“L”模式是按照下面的公式转换的:

L = R * 299/1000 + G * 587/1000+ B * 114/1000

 

模式“P”为8位彩色图像,它的每个像素用8个bit表示,其对应的彩色值是按照调色板查询出来的。

模式“RGBA”为32位彩色图像,它的每个像素用32个bit表示,其中24bit表示红色、绿色和蓝色三个通道,另外8bit表示alpha通道,即透明通道

 

保存图片:pic.save('name')

显示图片:pic.show()

RGB和RGBA转换不会失真

图片旋转操作:pic.rotate(45) 45度旋转

load : 版本 1.1.6 新添加的。load 返回对象的像素值,可以用来修改像素值。

图片缩放:img = img.resize((width, height),Image.ANTIALIAS)  
    Image.ANTIALIAS:滤镜效果,失真少
 
python squeeze去除维度为1的如输入size为(1,2,3),则输出为(2,3)
unsqueeze操作相反

reference:

  1.https://www.2cto.com/kf/201603/492898.html

  2.https://www.2cto.com/kf/201603/492895.html

  3.https://www.cnblogs.com/way_testlife/archive/2011/04/20/2022997.html

  4.http://blog.csdn.net/zywvvd/article/details/72810360

posted @ 2017-12-06 16:42  zhanghouyu  阅读(1616)  评论(0编辑  收藏  举报