1.1 Python图像处理PIL库
默认图片1.jpg
![](https://img-blog.csdnimg.cn/img_convert/d057fbe2923603bad4c1ccc47b6586ab.png)
1.1.1 转换图像格式
from PIL import Image
# 打开JPG格式图像文件
jpg_image = Image.open('input.jpg')
# 转换为PNG格式图像
png_image = jpg_image.convert('RGBA')
# 保存为PNG格式图像文件
png_image.save('output.png')
![](https://img-blog.csdnimg.cn/img_convert/7eb65f2560adcdbaa23a8f7f049c2ac7.png)
1.1.2 缩略图
from PIL import Image
def generate_thumbnail(source_image_path, thumbnail_width):
"""生成指定宽度的缩略图"""
with Image.open(source_image_path) as image:
# 计算缩略图的高度
thumbnail_height = int(thumbnail_width * image.height / image.width)
# 生成缩略图
thumbnail = image.resize((thumbnail_width, thumbnail_height))
# 保存缩略图
thumbnail.save('small.jpg')
generate_thumbnail('1.jpg', 200)
![](https://img-blog.csdnimg.cn/img_convert/bdd5ed2d9a6b5012f5d43a0a65dac7d0.png)
1.1.3 复制和粘贴图像区域
from PIL import Image
# 打开图片
with Image.open('1.jpg') as im:
# 计算提取区域的大小和位置
width, height = im.size
left = 0
top = 0
right = width // 2
bottom = height // 2
# 提取区域
region = im.crop((left, top, right, bottom))
# 保存提取的区域
region.save('crop.jpg')
![](https://img-blog.csdnimg.cn/img_convert/10c089a3513ded7d568e68bf82f56123.png)
1.1.4 调整尺寸和旋转
from PIL import Image
def resize_and_rotate(source_image_path, destination_image_path, size, degrees):
"""调整图片尺寸和旋转角度"""
with Image.open(source_image_path) as image:
# 调整图片尺寸
resized_image = image.resize(size)
# 旋转图片
rotated_image = resized_image.rotate(degrees)
# 保存结果图片
rotated_image.save(destination_image_path)
resize_and_rotate('1.jpg', 'des.jpg', (300, 300), 45)
![](https://img-blog.csdnimg.cn/img_convert/041aa119e6610de3264a475b6e649414.png)
1.2 Matplotlib
1.2.1 绘制图像、点和线
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
# 加载图像文件
image = mpimg.imread('1.jpg')
# 创建一个新的图像窗口
fig, ax = plt.subplots()
# 显示图像
ax.imshow(image)
# 绘制一个红色的点
ax.plot(250, 1000, 'ro')
ax.plot(1000, 1000, 'ro')
# 绘制一条蓝色的线
ax.plot([250, 1000], [1000, 1000], 'b-')
# 显示图像
plt.show()
![](https://img-blog.csdnimg.cn/img_convert/3cb6ec79f469ba667fa0d4075efe5c77.png)