欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 随手笔记-python-opencv 读取图像的顺序 与pytorch处理图像的顺序

随手笔记-python-opencv 读取图像的顺序 与pytorch处理图像的顺序

2025/4/19 18:18:48 来源:https://blog.csdn.net/yuweififi/article/details/147314259  浏览:    关键词:随手笔记-python-opencv 读取图像的顺序 与pytorch处理图像的顺序
import cv2# 读取图像
image_path = 'path/to/your/image.jpg'  # 替换为你的图像路径
image = cv2.imread(image_path)# 检查图像是否成功读取
if image is None:print("Error: Unable to load image.")
else:print("Image loaded successfully.")

1、OpenCV 使用 BGR 格式而不是 RGB 格式。

import matplotlib.pyplot as plt# 将 BGR 图像转换为 RGB
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)# 使用 Matplotlib 显示图像
plt.imshow(rgb_image)
plt.title('Image')
plt.axis('off')  # 关闭坐标轴
plt.show()

在 PyTorch 中处理图像时,图像的维度顺序通常与 NumPy 或 OpenCV 中的顺序有所不同。PyTorch 的图像处理顺序通常遵循 [C, H, W] 的维度顺序,即:

  • C:通道数(Channels),例如 RGB 图像有 3 个通道,灰度图像有 1 个通道。

  • H:图像高度(Height)。

  • W:图像宽度(Width)。

2、在使用 PyTorch 处理图像时,通常需要将图像从 [H, W, C] 转换为 [C, H, W] 的格式。以下是常见的处理流程: 

import torch
import numpy as np
from PIL import Image# 加载图像
image_path = "path/to/image.jpg"
image_pil = Image.open(image_path)# 转换为 NumPy 数组
image_np = np.array(image_pil)# 调整维度顺序:从 [H, W, C] 转换为 [C, H, W]
image_np = image_np.transpose((2, 0, 1))# 转换为 PyTorch 张量
image_tensor = torch.from_numpy(image_np).float()# 归一化到 [0, 1]
image_tensor = image_tensor / 255.0print("Image tensor shape:", image_tensor.shape)
print("Image tensor dtype:", image_tensor.dtype)

3、 PyTorch 提供了 torchvision.transforms 模块,可以更方便地处理图像。以下是一个使用 torchvision.transforms 的示例:

import torch
from torchvision import transforms
from PIL import Image# 定义图像预处理流程
transform = transforms.Compose([transforms.ToTensor(),  # 转换为 [C, H, W] 并归一化到 [0, 1]transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # 标准化
])# 加载图像
image_path = "path/to/image.jpg"
image_pil = Image.open(image_path)# 应用预处理
image_tensor = transform(image_pil)print("Image tensor shape:", image_tensor.shape)
print("Image tensor dtype:", image_tensor.dtype)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词