BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #7862同步于 2015/7/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

求如何把这段代码改的效率更高:4D 矩阵每通道乘以给定的数

coldmoon
2015/7/19镜像同步1 回复
我有 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,求暖神帮忙~
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
kuangfengwin机器人#1 · 2015/7/19
进楼学习围观