from PIL import Image
im=Image.open('/data/demo/L1020120.JPG')
print(im.mode)
RGB
将通道分离为R,G,B,A。
# r, g, b ,a= im.split()
将通道分离为R,G,B。
r,g,b = im.split()
将三个颜色打乱后合并显示。
from matplotlib import pyplot as plt
im = Image.merge("RGB", (b, g, r))
plt.imshow(im)
plt.show()
下面处理交换RGB图像的三个波段,需要注意的是, 如果图片是RGBA那么会出现异常, 解决方法将图片转换为RGB:
Image.open(image_path).convert("RGB").save(outfile)
Image.open('/data/demo/L1020120.JPG').convert("RGBA").save('./xx_img3_3.png')
im=Image.open('./xx_img3_3.png')
print(im.mode)
plt.imshow(im)
plt.show()
RGBA
source = im.split()
R, G, B = 0, 1, 2
过滤红色通道。
mask = source[R].point(lambda i: i < 100 and 255)
过滤绿色通道。
out = source[G].point(lambda i: i * 0.7)
粘贴已处理的通道,红色通道仅限于<100的值。
source[G].paste(out, None, mask)
im = Image.merge(im.mode, source)
plt.imshow(im)
plt.show()