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

python 复制代码
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 格式。

python 复制代码
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] 的格式。以下是常见的处理流程:

python 复制代码
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.0

print("Image tensor shape:", image_tensor.shape)
print("Image tensor dtype:", image_tensor.dtype)

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

python 复制代码
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)
相关推荐
山烛4 小时前
OpenCV:图像直方图
人工智能·opencv·计算机视觉·图像直方图
荼蘼4 小时前
OpenCV 发票识别全流程:透视变换与轮廓检测详解
人工智能·opencv·计算机视觉
☼←安于亥时→❦5 小时前
PyTorch 梯度与微积分
人工智能·pytorch·python
程序员三藏5 小时前
2025最新的软件测试面试八股文(800+道题)
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
Pocker_Spades_A6 小时前
Python快速入门专业版(二十三):for循环基础:遍历字符串、列表与range()函数(计数案例)
python
mahuifa6 小时前
OpenCV 开发 -- 图像阈值处理
人工智能·opencv·计算机视觉
闲人编程6 小时前
图像去雾算法:从物理模型到深度学习实现
图像处理·人工智能·python·深度学习·算法·计算机视觉·去雾
Kyln.Wu7 小时前
【python实用小脚本-211】[硬件互联] 桌面壁纸×Python梦幻联动|用10行代码实现“开机盲盒”自动化改造实录(建议收藏)
开发语言·python·自动化
Ms_Big8 小时前
ppliteseg改rknn,部署在嵌入式板,加速模型
人工智能·python·深度学习
lingggggaaaa8 小时前
小迪安全v2023学习笔记(八十一讲)—— 框架安全&ThinkPHP&Laravel&Struts2&SpringBoot&CVE复现
笔记·学习·struts·安全·网络安全·laravel