[英]how to calculate mean of images in dataset
我有數據集包含 2060 圖像我想計算平均值然后(每個圖像 - 平均值)作為歸一化
num_classes = 10
lable = [0,1,2,3,4,5,6,7,8,9]
X_data = []
Y_data = []
size = 100
#mean_sum = np.zeros((100,100))
#std_sum = np.zeros((100,100))
#print(mean_sum.shape)
for file in data:
folder = os.listdir(dir +'\\' + file)
for f in folder:
x=cv2.imread(dir +'\\' + file+'\\'+f) #read each image in each folder
z=cv2.resize(x,(size,size))#resize image to 100*100
gray = cv2.cvtColor(z,cv2.COLOR_BGR2GRAY) #convert to gray
gray = gray.astype(float)/255 #divide by 255
y=to_categorical(lable[int(file)],num_classes)
#mean = cv2.mean(z)
#print(mean.shape)
#mean_sum += np.squeeze(mean)
X_data.append(np.array(gray)) #append x in X_data list
Y_data.append(y) #append y in Y_data list
這是我的代碼,我試圖計算平均值但是當我使用 cv2.mean 時,平均值的形狀 (3,1) 和我的 mean_sum 數組形狀 (100,100) 和圖像形狀是 (100,100) 所以我得到錯誤不同的形狀我怎么能解決這個問題
您是否正在嘗試計算 2060 幅圖像中每個像素的平均值? 還是您要計算每張圖像中所有像素的平均值?
您當前的代碼似乎在做后者,即計算單個圖像中所有像素值的平均值。
但是你提出問題的方式,我相信你想要前者?
如果是這種情況,從當前代碼完成它的最簡單方法之一是使用mean_sum
僅添加實際像素值,即z
,然后除以圖像數 (2056):
for file in data:
folder = os.listdir(dir +'\\' + file)
for f in folder:
x=cv2.imread(dir +'\\' + file+'\\'+f) #read each image in each folder
z=cv2.resize(x,(size,size))#resize image to 100*100
gray = cv2.cvtColor(z,cv2.COLOR_BGR2GRAY) #convert to gray
gray = gray.astype(float)/255 #divide by 255
y=to_categorical(lable[int(file)],num_classes)
#mean = cv2.mean(z)
#print(mean.shape)
mean_sum += z
X_data.append(np.array(gray)) #append x in X_data list
Y_data.append(y) #append y in Y_data list
mean_sum /= len(folder)
class 葉數據(數據集):
def __init__(self,
data,
directory,
transform = None):
self.data = data
self.directory = directory
self.transform = transform
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
# import
path = os.path.join(self.directory, self.data.iloc[idx]['image_id'])
image = cv2.imread(path, cv2.COLOR_BGR2RGB)
# augmentations
if self.transform is not None:
image = self.transform(image = image)['image']
return image
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.