【问题标题】:How to normalize set of images between (-1,1)如何标准化(-1,1)之间的图像集
【发布时间】:2019-05-04 07:47:52
【问题描述】:

我有一个图像数据集,我想在将它们提供给 NN 之前对它们进行标准化 (-1,1) 我该怎么做?

x=sample
#Normalized Data
normalized = (x-min(x))/(max(x)-min(x))

# Histogram of example data and normalized data
par(mfrow=c(1,2))
hist(x,          breaks=10, xlab="Data",            col="lightblue", main="")
hist(normalized, breaks=10, xlab="Normalized Data", col="lightblue", main="")

我在网上找到了这段代码,但它没有解决我的问题,因为我有图像数据集

【问题讨论】:

  • normalized = (x-min(x))/(max(x)-min(x)),只需将此公式扩展到二维数组(=“图像”)。如果您仍然想要一个准确的答案,您应该告诉我们您的图像是如何导入 python (numpy ? cv2 ?) 以及以什么格式导入的。
  • 以 png 格式导入为 numpy

标签: python matlab tensorflow pytorch


【解决方案1】:

假设img 是您的图片名称

import numpy as np
normalized = 2*[(img - img.min()) / (img.max() - img.min())] - 1

应该给你介于 -1 和 1 之间的标准化图像

【讨论】:

  • 但这只是一张图片,我想标准化一个包含 30 张图片的数据集
【解决方案2】:

假设您的图像img_arraynp.array

normalized_input = (img_array - np.amin(img_array)) / (np.amax(img_array) - np.amin(img_array))

会将您的数据标准化为 0 到 1 之间。

然后,2*normalized_input-1 会将其在 -1 和 1 之间移动

如果你想对多张图片进行归一化,你可以把它变成一个函数:

def normalize_negative_one(img):
    normalized_input = (img - np.amin(img)) / (np.amax(img) - np.amin(img))
    return 2*normalized_input - 1

然后遍历一个例如列表,名为 imgs 的图像元组:

for i,img in enumerate(imgs):
    imgs[i] = normalize_negative_one(img)

【讨论】:

  • 谢谢你让我们说我正在使用 pytorhc ,我应该把这一行放在 getitem 中吗?
  • 不知道你的意思,应该属于同一个问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 2013-05-17
  • 1970-01-01
相关资源
最近更新 更多