为了账号安全,请及时绑定邮箱和手机立即绑定

从 1 通道阵列到带有 if 条件的 3 通道

从 1 通道阵列到带有 if 条件的 3 通道

梵蒂冈之花 2022-04-27 16:19:37
img是彩色图像(3 个通道的数组)。img_sc一个与img大小相同但有 1 个通道的零数组。此操作将 rgb 图像(包含 5 个类的分段图像)的颜色映射到包含类 ID 的 ID 图像:img_sc[np.logical_and(np.logical_and(img[:,:,0]==170,img[:,:,1]==170),img[:,:,2]==170)] = 1img_sc[np.logical_and(np.logical_and(img[:,:,0]==0,img[:,:,1]==255),img[:,:,2]==0)] = 2换句话说,在分割图像中,道路是灰色的 (170, 170,170) 并且它的类 ID 是 1 ,草是 (0,255,0) 并且它的 ID 是 2 等到其他类,所以没有图像我有一个包含 1 个通道的数组,其中只包含 IDs 。我需要执行与此操作相反的操作,并转换包含 ID 的 1 通道数组,如下所示:[[3 3 3 ... 4 4 4] [3 3 3 ... 4 4 4] [3 3 3 ... 4 4 4] ... [3 3 3 ... 2 2 2] [3 3 3 ... 2 2 2] [3 3 3 ... 2 2 2]]进入包含 RGB 颜色的 3 通道数组:[[[102 102  51]  [102 102  51]  [102 102  51]  ...  [  0 120 255]  [  0 120 255]  [  0 120 255]] [[102 102  51]  [102 102  51]  [102 102  51]  ...  [  0 120 255]  [  0 120 255]  [  0 120 255]] [[102 102  51]  [102 102  51]  [102 102  51]  ...  [  0 120 255]  [  0 120 255]  [  0 120 255]] ... [[102 102  51]  [102 102  51]  [102 102  51]  ...  [  0 255   0]  [  0 255   0]  [  0 255   0]] [[102 102  51]  [102 102  51]  [102 102  51]  ...  [  0 255   0]  [  0 255   0]  [  0 255   0]] [[102 102  51]  [102 102  51]  [102 102  51]  ...  [  0 255   0]  [  0 255   0]  [  0 255   0]]]
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

h, w, c = img.shape

out = np.zeros((h,w,c))

out[class[:, :] == 1, :] = [170, 170, 170]

out[class[:, :] == 2, :] = [0, 255, 0]

可以工作,或者


h, w, c = img.shape

out = np.zeros((h,w,c))

out[class[:, :] == 1, 0] = 170

out[class[:, :] == 1, 1] = 170

out[class[:, :] == 1, 2] = 170

out[class[:, :] == 2, 1] = 255


查看完整回答
反对 回复 2022-04-27
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

arr = np.stack((arr,)*3, axis=-1)

arr[np.where((arr == 1).all(axis=2))] = [170, 170, 170]


查看完整回答
反对 回复 2022-04-27
  • 2 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信