RGB转化为Gray图像 用于深度学习训练 PIL

这篇博客介绍了如何将RGB图像转换为灰度图像,包括在训练数据准备阶段使用PyTorch的transforms和PIL库,以及在单独处理图像时使用Numpy的方法。文章详细讲解了Grayscale转换、使用expand_dims和repeat函数来扩充单通道图像,并探讨了numpy的repeat函数和squeeze函数的用法。

实验需要,将RGB转化为gray,可以单独处理RGB数据,或者在训练时,数据准备阶段,利用transforms直接转化。

RGB转gray可以通过PIL或者CV2相应算法库进行转化。另一种选择是通过公式Y = 0.299 R + 0.587 G + 0.114 B.从RGB计算灰度(Y)通道 切片数组并转换为一个通道。

class Gray(object)

    def __call__(self, tensor):
        # TODO: make efficient
        R = tensor[0]
        G = tensor[1]
        B = tensor[2]
        tensor[0]=0.299*R+0.587*G+0.114*B
        tensor = tensor[0]
        tensor = tensor.view(1,w,h)
        return tensor

注意PIL读取图片为RGB格式,cv2.imread读取图片为BGR格式。

数据准备阶段 transform转化

import torch
import torchvision
import torchvision.transforms as transforms
from PIL import Image


image_path = "/home/WuHF/whf/pytorch_code/dttNet/dataset/fusion_datasets/lytro-01-A.jpg"
image = Image.open(image_path)
 
input_transform = transforms.Compose([
   transforms.Grayscale(num_output_channels=1), #这一句就是转为单通道灰度图像
   transforms.ToTensor(),
])
image_tensor = input_transform(image)

 

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值