百度飞桨数据处理 API 数据格式 HWC CHW 和 PIL 图像处理之间的关系
使用百度飞桨 API 例如:Resize Normalize,处理数据的时候。
Resize:如果输入的图像是 PIL 读取的图像这个数据格式是 HWC ,Resize 就需要 HWC 格式的数据。
Normalize:有 data_format 参数,把数据格式设为 data_format="HWC"。
当数据处理完后把数据输入到网络模型的时候,网络模型一般都是 CHW,需要把数据格式转换一下,这样才能正常运行程序
- C 通道数
- H 高
- W 宽
代码举例:
import numpy as np
from PIL import Image
import paddle.vision.transforms as pptf
import paddle.vision as ppvs
def get_image_data_to_net(image_path: str):
# 设置图像处理后端
ppvs.set_image_backend("pil")
# 用 PIL 库读取图像
image = Image.open(image_path)
# Resize: 调整图像大小, Normalize: 图像归一化处理
transform = pptf.Compose([pptf.Resize(size=[224, 224]), pptf.Normalize(mean=[127.5, 127.5, 127.5],
std=[127.5, 127.5, 127.5], data_format='HWC')])
image = transform(image)
# 转换图像 HWC 转为 CHW
image = np.transpose(image, (2,0,1))
return image.astype("float32")