如何将灰度图的一通道变换为三通道[迁移学习]

看到这个问题的读者请点赞,真的思考了很久时间

1. 前提

一直想应用做迁移学习实验,但VGG16等经典模型的输入通道皆为三通道RGB格式,此处我记得要求是(224,224,3)。而我之前做实验所用数据为一维时序信号,有时转换为灰度图形式输入到卷积神经网络中,二者都是不可以的。

2. 过程
在知网上找了该篇文章
在这里插入图片描述
文章在数据预处理的地方介绍了一种思想
在这里插入图片描述
转换的具体流程为
在这里插入图片描述
根据该作者的思想,我实现了上述方法,代码如下:

3. 实现过程

import copy
import numpy as np
a = list(range(24))
a = np.array(a)
a = a.reshape(2,3,4)

bs = list()
for i in range(2):
    c = []
# b = a[0,:,:] #取第一个数组
    b_auto = a[i,:,:]
    b_1 = copy.deepcopy(b_auto)
    b_2 = copy.deepcopy(b_auto)
    com = np.array([b_auto,b_1,b_2])
    com = np.transpose(com,(1,2,0)) #通道变换(chw→hwc)
    bs.append(com[np.newaxis, :])
c = np.concatenate(bs, axis=0)
print(c)
--------------------------------------
[[[[ 0  1  2  3]
   [ 4  5  6  7]
   [ 8  9 10 11]]

  [[ 0  1  2  3]
   [ 4  5  6  7]
   [ 8  9 10 11]]

  [[ 0  1  2  3]
   [ 4  5  6  7]
   [ 8  9 10 11]]]


 [[[12 13 14 15]
   [16 17 18 19]
   [20 21 22 23]]

  [[12 13 14 15]
   [16 17 18 19]
   [20 21 22 23]]

  [[12 13 14 15]
   [16 17 18 19]
   [20 21 22 23]]]]

4. 规整如下

def cchannel(xxx): #定义变换通道函数
    bs = list()
    for i in range(len(xxx)):#获取例子个数
        c = [添加链接描述](https://www.zhihu.com/question/373145401)[]
        b_auto = xxx[i,:,:]#依次取灰度图
        com = np.array([b_auto,b_auto,b_auto])#变为三通道 
        bs.append(com[np.newaxis, :])
    nx_xxx = np.concatenate(bs, axis=0)
    return nx_xxx
-------------------------------------
  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值