返回信息流我有 100 张 RGB 三通道图像。我想让每张图像的
R 通道中小于 0 的数乘以 1,
G 通道中小于 0 的数乘以 2,
B 通道中小于 0 的数乘以 3,
我是这么写的代码,但是感觉效率太低了:
```
img = np.array(range(7500)).reshape(100,3,5,5) # 构造 100 张 5 × 5 的随机“图像”(伪图像)
img[:,:,1:3,1:4] = -1 # 让图像的一部分数值小于 0
a = np.array([1,2,3]) # 用于乘以给定的数
img = np.transpose(img, (1, 0 ,2 , 3)) # 让通道在最前面
img = img.reshape(3, 100*5*5).T # 为了方便后面乘以给定的数
backup = img[img >= 0] # 备份正数
img[:,:] *= a # 乘以给定的数
img[img >= 0] = backup # 把正数在给恢复回来
img = img.T.reshape(3, 100, 5, 5) # 恢复成原图像的形状
img = np.transpose(img, (1,0,2,3))
```
有没有效率更高,让程序跑的更快的写法?@nuanyangyang,求暖神帮忙~
这是一条镜像帖。来源:北邮人论坛 / python / #7862同步于 2015/7/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
求如何把这段代码改的效率更高:4D 矩阵每通道乘以给定的数
coldmoon
2015/7/19镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复