对指定的图像文件进行预处理。 参数: filename (str): 图像文件的路径。 返回: numpy.ndarray: 预处理后的图像数据。
(filename)
| 312 | |
| 313 | # PreProcess 用于对图像进行预处理 |
| 314 | def PreProcess(filename): |
| 315 | """ |
| 316 | 对指定的图像文件进行预处理。 |
| 317 | |
| 318 | 参数: |
| 319 | filename (str): 图像文件的路径。 |
| 320 | |
| 321 | 返回: |
| 322 | numpy.ndarray: 预处理后的图像数据。 |
| 323 | """ |
| 324 | from PIL import Image # 导入图像处理库 |
| 325 | from torchvision import transforms # 导入PyTorch视觉变换库 |
| 326 | |
| 327 | # 打开图像文件 |
| 328 | img = Image.open(filename) |
| 329 | |
| 330 | # 定义预处理步骤 |
| 331 | PreProcessFunction = transforms.Compose( |
| 332 | [ |
| 333 | transforms.Resize(256), # 首先调整图像大小 |
| 334 | transforms.CenterCrop(224), # 中心裁剪 |
| 335 | transforms.ToTensor(), # 转换为PyTorch张量 |
| 336 | transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), # 标准化 |
| 337 | ] |
| 338 | ) |
| 339 | |
| 340 | # 对图像应用预处理 |
| 341 | input_tensor = PreProcessFunction(img) |
| 342 | # 增加一个批次维度 |
| 343 | input_batch = input_tensor.unsqueeze(0) |
| 344 | |
| 345 | # 将PyTorch张量转换为numpy数组,并调整维度顺序 |
| 346 | out = np.array(input_batch) |
| 347 | out = np.transpose(out, (0, 2, 3, 1)) |
| 348 | out = np.reshape(out, (224, 224, 3)) |
| 349 | return out |
| 350 | |
| 351 | |
| 352 | class Resnet: |