图像处理
颜色与像素
颜色
美术三原色是红黄蓝;色光三原色是红绿蓝,所以通常会将一个颜色表示为一个RGB值或者RGBA值(A表示Alpha通道,决定了通过这个图像的像素,也就是透明度)。
名称 | RGBA值 | 名称 | RGBA值 |
---|---|---|---|
White | (255, 255, 255, 255) | Red | (255, 0, 0, 255) |
Green | (0, 255, 0, 255) | Blue | (0, 0, 255, 255) |
Gray | (128, 128, 128, 255) | Yellow | (255, 255, 0, 255) |
Black | (0, 0, 0, 255) | Purple | (128, 0, 128, 255) |
像素
对于一个由数字序列表示的图像来说,最小的单位就是图像上单一颜色的小方格,这些小方格都有明确的位置和被分配的色彩数值,而这些小方格的颜色和位置决定了该图像最终呈现出来的样子,它们是不可分割的单位,也就是像素(pixel)。每一个图像都包含一定量的像素,这些像素决定图像再屏幕上所呈现的大小。
用Pillow处理图像
裁剪图像
from PIL import Image
image = Image.open('algorithm.jpg')
rect = 80,20,310,360
image.crop(rect).show()
生成缩略图
from PIL import Image
image = Image.open('algorithm.jpg')
size=128,128
image.thumbnail(size)
image.show()
缩放和粘贴图像
from PIL import Image
image1 = Image.open('algorithm.jpg')
image2 = Image.open('road.jpg')
rect=80,20,310,360
image2_head=image2.crop(rect)
width,height=image2.size
image1.paste(image2_head.resize((int(width/1.5),int(height/1.5))),(172,40))
image1.show()
旋转和翻转
from PIL import Image
image = Image.open('algorithm.jpg')
image.rotate(180).show()
image.transpose(Image.FLIP_LEFT_RIGHT).show()
操作像素
from PIL import Image
image = Image.open('algorithm.jpg')
for x in range(80,310):
for y in range(20,360):
image.putpixel((x,y),(128,128,128))
image.show()
滤镜效果
from PIL import Image,ImageFilter
image = Image.open('algorithm.jpg')
image.filter(ImageFilter.CONTOUR).show()