Python 学习——图像简单处理

一、所用的相关模块:

ImageMagick  (多平台、创建、编辑和合成位图等)

OpenCV  (Open Soure Computer Vision 计算机视觉处理图像库,人脸识别、动作识别、轨迹建模等) 

PIP(Python Imaging Library 已不再维护,由Pillow替代)

Pillow (位图处理,查看图片信息、常规处理等,不含有对矢量图的处理)

图像:

位图:又名点阵图(像素)缺点:颜色越丰富,细节越清晰,文件越大。常见格式:BMP,GIF,PNG,JPEG,等等。

矢量图:有计算机计算产生。缺点,对颜色细节处理不好

像素:指图像水平方向(长)和垂直方向(高)的像素个数的个数。

颜色模式:(Pillow.mode)

RGB 红、蓝、绿。有0~255设置该中颜色的多少,最终颜色是叠加后的实现的。适合显示器的输出(加色法)

CMYK 采用青(Cyan)、品红(Magenta)、黄(Yellow)、黑(Black)四种油墨来生成颜色,用于印刷领域。(减色法)

灰度模式  只包含灰度信息。不包含彩色信息、有8位显示颜色信息

二、基本的图像处理:

安装:PIL

你会发现pip3 install PIL 找不到PIL包

你需要通过安装pillow后,查看你安装python相应的.\python\python36-32\lib\site-packages\PIL

或者.\anaconda3\lib\site-packages\PIL,看是否存在这个文件夹。

若存在,说明已经成功安装了PIL,import PIL 若显示仍然没有,重启一下电脑。再试试即可。

图像的读写操作:

import PIL
from PIL import Image

image1 = Image.open(".\照片组\照片 (4).jpg")  #取当前路径下一文件夹中的一张照片
image2 = Image.Image()
print(image1,image2)  #显示对象信息

image1.show()         #调用系统默认的图像显示软件显示照片
image1.save("new_image.jpg")   #保存到当前路径里,命名为new_image.jpg
print(image1.filename)

获取图像的其他信息:*注意,像image2这样的对象,只要被赋值后才能调用这些方法,因为没赋值前它是NoneType类型的。

print(image1.filename)
print(image1.size)
print(image1.mode)
print(image1.getbands())
print(image1.format)  #显示扩展名,文件的后缀只是一种判断手段,不会因为后缀的修改,扩展名也随着修改的。
print(image1.info)
print(image1.readonly) #0表示读写,1表示只读

转换照片格式格式:

通过save,重新保存成新的格式文件即可


convert不同颜色模式的转换:

主要的模式包括:1,、L、P 、RGB、RGBA、CMYK、YcbCr、I、F等等。

image1.convert("L") #显示不同的颜色模式
image1.show()
 
#图像的裁剪和合成
rec = (100,100,500,500)
new_image = image1.crop(rec)
# new_image.show()
#复制
copy_image = new_image.copy()
#拼接
bg_image = Image.open(".\照片组\照片 (2).jpg")
bg_image.paste(copy_image,(0,0,400,400))
bg_image.show()

 
#设置透明遮罩
mask = new_image.point(lambda i:i<100 and 255)
mask = mask.convert("1")
im8 = Image.open(".\照片组\照片 (2).jpg")
im8.paste(im = new_image, box = rec, mask = mask )
im8.show()
#单独通道处理
r,g,b = image1.split()
merge_im = Image.merge("RGB",(g,r,b)) #这里只是将r,g,换了一下位置。
merge_im.show()
#图像变换,缩略图
im = image1.resize((140,180))
# im.show()
image1.thumbnail((140,180))  #或者直接调用该方法
#image1.show()

旋转rotate(角度)

transpose(动作类型)

FLIP_LEFT_RIGHT左右反转     ROTATE_180 逆时针旋转180度

FLIP_TOP_BOTTOM上下翻转 ROTATE——270 逆时针270

其他图像处理:

PIL.ImageChops:

constant()生成图像        invert 反色处理        

混合处理:

lighter 亮化    darker   暗化    difference 差值    multiply  正片叠底    screen  屏幕

增强处理:(PIL.ImageEnhance)

.Color()彩色调整    ·   Brightness()明亮度~        Contrast 对比度        Sharpness  锐度

内置滤镜:(PIL.ImageFilter)

from PIL import ImageFilter as IF,Image

im1 = Image.open(".\照片组\照片 (2).jpg")
im1.filter(IF.CONTOUR).show()  #添加滤镜CONTOUR,(ImageFileter还有很多滤镜。)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值