单通道二维数组指定颜色编码转RGB显示

公众号:清纯世纪 

代码:

        法一:

import numpy as np
color = {0 : [0, 0, 0],
         1 : [128, 0, 0],
         2 : [0, 128, 128],
         3 : [128, 128, 0]} # 对应标签的颜色编码

predict = np.zeros((5,5,3)) # 转RGB用的,接收相应的预测RGB值
pre = np.array([[0,1,1,3,2],
                [0,3,2,1,2],
                [1,1,1,3,3],
                [0,2,2,2,2],
                [1,2,1,3,0]])  # 真正的网络输出二维数组值

for i in range(pre.shape[0]):
    for j in range(pre.shape[1]):
        predict[i,j] = color[pre[i,j]]

print(np.array(predict).transpose((2,0,1)))

        法二:

import numpy as np

color = {0: [0, 0, 0],
         1: [128, 0, 0],
         2: [0, 128, 128],
         3: [128, 128, 0]}  # 对应标签的颜色编码

predict = np.zeros((5, 5, 3))  # 转RGB用的,接收相应的预测RGB值
pre = np.array([[0, 1, 1, 3, 2],
                [0, 3, 2, 1, 2],
                [1, 1, 1, 3, 3],
                [0, 2, 2, 2, 2],
                [1, 2, 1, 3, 0]])  # 真正的网络输出二维数组值

# predict 是用来赋色的:color[i] 代表一类的颜色值;colors[i][0] 代表该类的 0 通道的值
# 下面的三行分别来对每个通道上的各类的颜色值进行赋值,pre只有一个通道(二维),所以才一直是 pre[:,:,0]
for i in range(len(color)):
    predict[:, :, 0] += ((pre[:, :] == i) * (color[i][0])).astype('uint8')
    predict[:, :, 1] += ((pre[:, :] == i) * (color[i][1])).astype('uint8')
    predict[:, :, 2] += ((pre[:, :] == i) * (color[i][2])).astype('uint8')
print(np.array(predict).transpose((2, 0, 1)))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清纯世纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值