python的image用法_python – PyTorch – 如何正确使用“toPILImage”

本文探讨了使用torchvision的toPILImage方法时遇到的图像颜色显示异常问题。作者尝试将预处理过的图像还原为原始RGB格式进行展示,但遇到了颜色失真现象。文中详细记录了解决这一问题的过程,并分享了一个部分有效的解决方案。
部署运行你感兴趣的模型镜像

我想知道,我是否正确地使用了torchvision的

toPILImage.我想使用它来查看初始图像转换应用于数据集后图像的外观.

当我在下面的代码中使用它时,出现的图像具有奇怪的颜色,如this one.原始图像是常规的RGB图像.

这是我的代码:

import os

import torch

from PIL import Image, ImageFont, ImageDraw

import torch.utils.data as data

import torchvision

from torchvision import transforms

import matplotlib.pyplot as plt

# Image transformations

normalize = transforms.Normalize(

mean=[0.485, 0.456, 0.406],

std=[0.229, 0.224, 0.225]

)

transform_img = transforms.Compose([

transforms.Resize(256),

transforms.CenterCrop(256),

transforms.ToTensor(),

normalize ])

train_data = torchvision.datasets.ImageFolder(

root='./train_cl/',

transform=transform_img

)

test_data = torchvision.datasets.ImageFolder(

root='./test_named_cl/',

transform=transform_img

)

train_data_loader = data.DataLoader(train_data,

batch_size=4,

shuffle=True,

num_workers=4) #num_workers=args.nThreads)

test_data_loader = data.DataLoader(test_data,

batch_size=32,

shuffle=False,

num_workers=4)

# Open Image from dataset:

to_pil_image = transforms.ToPILImage()

my_img, _ = train_data[248]

results = to_pil_image(my_img)

results.show()

编辑:

我不得不在Torch变量上使用.data来获得张量.

我还需要在转置之前重新调整numpy数组.我找到了一个有效的解决方案here,但它并不总能正常工作.我怎么能做得更好?

for i, data in enumerate(train_data_loader, 0):

img, labels = data

img = Variable(img)

break

image = img.data.cpu().numpy()[0]

# This worked for rescaling:

image = (1/(2*2.25)) * image + 0.5

# Both of these didn't work:

# image /= (image.max()/255.0)

# image *= (255.0/image.max())

image = np.transpose(image, (1,2,0))

plt.imshow(image)

plt.show()

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

你遇到的错误是典型的 `ModuleNotFoundError`,表示 Python 解释器找不到名为 `cv2` 的模块。`cv2` 是 OpenCV(开源计算机视觉库)的 Python 接口,常用于图像和视频处理。 --- ## 📌 错误信息分析: ``` Traceback (most recent call last): File "D:\python\yang.py\new\heartrate_estimation_system_qt_pytorch2.py", line 11, in <module> import cv2 ModuleNotFoundError: No module named 'cv2' ``` - **问题根源**:你的 Python 环境中没有安装 `opencv-python`。 - **路径信息**:你使用的是 `D:\python\python.exe` 这个 Python 解释器。 - **解决方案**:你需要在这个 Python 环境中安装 OpenCV。 --- ## ✅ 解决方法:使用 pip 安装 OpenCV 请打开命令行工具(cmd 或 PowerShell),然后运行以下命令: ```bash D:\python\python.exe -m pip install opencv-python ``` > 这样可以确保你安装的包是针对 `D:\python\python.exe` 这个 Python 解释器的。 如果你还需要额外的模块(如 SIFT、SURF 等专利算法),可以安装完整版本: ```bash D:\python\python.exe -m pip install opencv-contrib-python ``` --- ## ✅ 验证安装是否成功 在命令行中运行: ```bash D:\python\python.exe -c "import cv2; print(cv2.__version__)" ``` 如果输出了 OpenCV 的版本号(如 `4.8.0`),说明安装成功。 --- ## 🛠️ 补充说明:虚拟环境问题 如果你是在虚拟环境中运行程序,请确保你激活了虚拟环境后再安装: ```bash # 激活虚拟环境 .\venv\Scripts\activate # 安装 OpenCV pip install opencv-python ``` --- ## ✅ 示例代码:测试 OpenCV 是否正常工作 ```python import cv2 # 读取一张图片(请替换为你的图片路径) img = cv2.imread('test.jpg') # 显示图片 cv2.imshow('Image', img) cv2.waitKey(0) # 等待按键 cv2.destroyAllWindows() ``` --- ## ❓为什么会出现这个问题? - 你可能没有安装 OpenCV。 - 你可能在多个 Python 版本之间混淆了安装路径。 - 使用Python 解释器与 pip 安装的包不在同一个环境中。 --- ##
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值