python中单个数字(如id)映射到multi-channel value(如r,g,b值)的快速实现方法

最近在做segmentation的时候,有这样的需求,从一个id映射到一个特定的颜色,一个一个查表太复杂了,碰巧看到别人在代码中有这样一种比较巧妙的计算方式,这里记录一下,以备以后使用

但是有一个要求,id的值必须恰好等于其在码本中的index,即id=0这一项映射关系在码本中的Index也需为0

目标:将一张class id图像 映射到一个 (r,g,b) value图像

colorMap = [
    (0,0,120),
    (10,0,0),
    (30,40,50),
    (50,79,90)
]

idImg = np.array([
    np.array([1,3]),
    np.array([2,0])
])

接下,就可以根据colored = Map(id)这样的映射操作得到想要的结果了

colorMap = np.array(colorMap)
>>> colorImg = colorMap[idImg.astype(int)]
>>> colorImg
array([[[ 10,   0,   0],
        [ 50,  79,  90]],

       [[ 30,  40,  50],
        [  0,   0, 120]]])
>>>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值