图像处理常用基础操作

发布于:2025-03-04 ⋅ 阅读:(37) ⋅ 点赞:(0)
from PIL import Image

# 打开图像
img = Image.open("example_image.png")  # 替换为您的图像文件路径

# 获取当前图像的尺寸
size = img.size  # size 是一个元组 (宽度, 高度)

# 将图像尺寸加倍
img = img.resize((size[0] * 2, size[1] * 2), Image.LANCZOS)

# 保存或显示调整大小后的图像
img.save("resized_image.png")  # 保存调整后的图像
img.show()  # 显示调整后的图像
#size[0]:图像宽度,size[1]图像高度
#Image.LANCZOS 是 Pillow 中的一种重采样滤波器,用于图像缩放。LANCZOS 滤波器是一种高质量的重采样技术,适合用于图像缩放,尤其是在将图像放大时。
#使用LANCZOS滤波器可以使图像在调整大小时保持较高的质量,减少锯齿和模糊现象
python
import numpy as np
import cv2
from PIL import Image

# 假设 img 是一个 PIL 图像对象
img = Image.open("example_image.png")  # 替换为您的图像文件路径

# 将 PIL 图像转换为 NumPy 数组并从 RGB 转换为 BGR
image_cv2 = cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

# 显示图像
cv2.imshow("Image in BGR", image_cv2)
cv2.waitKey(0)  # 等待按键
cv2.destroyAllWindows()
#图像RGB转BGR(opencv默认为BGR顺序)
#使用 NumPy 库的 asarray 函数将图像对象 img 转换为 NumPy 数组
#不同库对颜色通道的排序不同,PIL默认使用RGB, openv使用BGR
import base64
from io import BytesIO
from PIL import Image

# 假设这是一个 Base64 编码的图像字符串(省略前缀部分)
img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..."  # 省略部分

# 从 Base64 字符串中提取实际的编码部分
img_data = img.split(",")[1]  # 去掉前面的数据类型前缀

# 解码 Base64 编码的图像
image = base64.b64decode(img_data)

# 将解码后的二进制数据转换为字节流
image = BytesIO(image)

# 打开图像
image = Image.open(image)

# 显示图像
image.show()
  • #base64.b64decode 函数将一个 Base64 编码的字符串 img 解码为二进制数据。Base64 是一种常见的编码格式,通常用于在网络上传输二进制数据(如图像、音频等)。将 Base64 编码的字符串转换为其原始二进制表示,准备后续的图像处理。
    #将二进制数据转为字节流,BytesIO是io中的嘞,用于在内存中处理字节流
    #Image.open是pillow中的一个函数,打开和识别字节流对象,将字节流转换为PIL Image对象