基于python脚本语言开发的数字图片处理包有 PIL,Pillow,opencv,scikit-image等,其中:
安装:
pip install Pillow
from PIL import Image
from PIL import ImageGrab
# Image.open 打开图片
img = Image.open('picture.png')
# 获取剪贴板中复制的图片
img = ImageGrab.grabclipboard()
# 显示图像
img.show()
# 旋转图像
new_img = img.rotate(90) # 逆时针旋转 90 度
# 图像的镜面翻转
new_img = img.transpose(Image.FLIP_LEFT_RIGHT) # 水平翻转
new_img = img.transpose(Image.FLIP_TOP_BOTTOM) # 垂直翻转
# 重新设置图像大小
new_img = img.resize((1280, 1964),Image.BILINEAR)
# 保存图片
new_img.save('new_picture.png')
from PIL import Image, ImageFont, ImageDraw
img = Image.new("RGB", (32, 32), "black") # 新建图像,黑色 32*32
draw = ImageDraw.Draw(img) # 可对img进行绘制
font = ImageFont.truetype(font_path, int(width * 0.9),) # 创建ImageFont对象
draw.text((0, 0), '陈', (255, 255, 255),font=font) # 在img中绘制文字
import re
import base64
from io import BytesIO
from PIL import Image
# Image 图像转为二进制和 base64 字符串
img = Image.open('picture.png')
buffer = BytesIO()
img.save(buffer, format='PNG')
byte_data = buffer.getvalue() # 二进制编码,# bytes类型
base64_byte = base64.b64encode(byte_data) # base64 编码,bytes类型
base64_str = base64_byte.decode() # base64 编码,字符串类型
# base64 字符串转为 Image 图像
new_byte_data = base64.b64decode(base64_str)
img_data = BytesIO(new_byte_data)
new_img = Image.open(img_data)
new_img.show()
from PIL import Image
import numpy as np
img = Image.open('picture.png')
# Image 图像转为 numpy 数组
imarr = np.array(img)
# 将 numpy 数组转为 Image 对象
new_img = Image.fromarray(imarr * 2)
scikit-image 将图像读取为 Numpy 数组,操作也都是基于对数组的操作。
pip install scikit-image
子模块 | 功能描述 |
---|---|
color | 颜色变换的模块 |
data | 提供一些测试图片和数据 |
draw | 图像绘制,包括线条、矩形、圆和文本等 |
exposure | 图片强度调整,如亮度调整、直方图均衡等 |
feature | 特征检测与提取等 |
filters | 图像增强、边缘检测、排序滤波器、自动阈值等 |
io | 读取、保存和显示图片或视频 |
measure | 图像属性的测量,如相似性或等高线等 |
metrics | 评估图像误差、相似性等 |
morphology | 形态学操作,如开闭运算、骨架提取等 |
restoration | 图像恢复 |
segmentation | 图像分割 |
transform | 几何变换或其它变换,如旋转、拉伸和拉东变换等 |
util | 通用函数 |
viewer | 其他查看图像的方法 |
基本用法
from skimage import io
# 打开图像
image = io.imread('picture.png')
type(image) # numpy.ndarray
# 查看图像
io.imshow(image)
# 保存图片
io.imsave('new_picture.png', image)
安装:pip install opencv-python
pypi 网址:https://pypi.org/project/opencv-python/
由于外网的官方库下载太慢,可以使用豆瓣的源下载安装:pip install opencv-python -i https://pypi.douban.com/simple
OpenCV python 文档:https://docs.opencv.org/master/d6/d00/tutorial_py_root.html
基本用法:
import cv2
# 读取图片
im = cv2.imread(picfile)
type(im) # numpy.ndarray
# 显示图片
cv2.imshow('show image', im)
# 保存图片
cv2.imwrite('new_picture.png', im)