【发布时间】:2021-02-13 18:52:46
【问题描述】:
我有一个 512x512 RGB 图像的数据集。我有两个 1x3 数组
mean_value = [0.485,0.456,0.406]
std_value = [0.229,0.224,0.225]
每个元素代表一个 RGB 通道的所需均值和标准差。 这是计算新图像的公式,1个下标代表原始图像,2个下标代表期望的均值和标准。
到目前为止,我的代码包含一个用于遍历所有通道的 for 循环。
for i in range(3):
norm_tmp = np.subtract(img[:,:,i],np.mean(img[:,:,i]))
std_mult = np.divide(std_value[i],np.std(img[:,:,i]))
img[:,:,i] = np.add(mean_value[i],np.multiply(norm_tmp,std_mult))
但是,我想避免这种情况,并可能找到一个没有 for 循环的 numpy 实现。我也看到了一些使用 openCV 函数的尝试,所以如果有一个有效的函数,我也会很高兴,但到目前为止我还没有找到令人满意的解决方案。
【问题讨论】:
标签: python performance numpy image-processing