'How to Standard Scale multiple Images?

I am working on a classification problem in python and would like to scale the dataset in the first step.

I have 3463 images each with a dimension of (40,90,3) respectively (x, y, channel) . Overall, the array has a dimension of (3463, 40, 90,3)

How can I use the standard scale correctly and how can I display the image?

Code:

#------------- Image Preprocessing -----------------------------------

Eingangsbilder2 = np.asarray(Eingangsbilder2)
print("Image-dim: ",Eingangsbilder2.shape)

scalers = {}
for x in range(0, len(Eingangsbilder2)):

   for i in range(0,Eingangsbilder2[x].shape[2]):
       scalers[i] = StandardScaler()
       Eingangsbilder2[x][:, :, i] = scalers[i].fit_transform(Eingangsbilder2[x][:, :, i]) 


plt.imshow(Eingangsbilder[2010])


Solution 1:[1]

You can get rid of the for loop altogether by applying z-scoring, which is equivallent to scikit-learn StandardScaler to the first "image number" axis:

Eingangsbilder2 = scipy.stats.zscore(Eingangsbilder2, axis=0)

Hint: In Python you can simply write range(len(Eingangsbilder2)), since the first index (unlike MATLAB) always starting with 0

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Merk