当前位置: 首页 > news >正文

随手笔记-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)

相关文章:

  • win10下github libiec61850库编译调试sntp_example
  • Python PDF 转 Markdown 工具库对比与推荐
  • GM DC Monitor告警大屏的设计思路
  • CGAL边折叠edge_collapse的问题
  • Oracle测试题目及笔记(单选)
  • Mysql的锁有哪些
  • 在Linux下安装Gitlab
  • C#进阶学习(五)单向链表和双向链表,循环链表(中)双向链表
  • 在极狐GitLab 身份验证中如何使用 JWT?
  • Flutter ListView 详解
  • 前沿要塞:Vue组件安全工程的防御体系重构与技术突围
  • “星睿O6” AI PC开发套件评测 - Windows on Arm 安装指南和性能测评
  • 游戏引擎学习第230天
  • ZStack文档DevOps平台建设实践
  • esp32的NVS非易失性存储代码
  • Python-基础数学运算、数据结构和数据分析
  • Google Gemini 系列AI模型 的详细解析,涵盖其技术特点、版本差异、应用场景及优势
  • 游戏引擎学习第231天
  • Hibernate关联查询N+1查询问题记录
  • Redis的下载安装和使用(超详细)
  • 受关税政策影响,沃尔玛将上调部分商品在美售价
  • 中国军网:带你揭开3所新调整组建军队院校的神秘面纱
  • 人形机器人灵犀X2掌握新技能:有了“内心戏”,还会拳脚功夫
  • 涉案资金超2亿元 “健康投资”骗局,专挑老年人下手
  • 董军在第六届联合国维和部长级会议上作大会发言
  • 中国结算澄清“严查场外配资”传闻:账户核查为多年惯例,无特殊安排