2016-04-04 8 views
1

У меня есть несколько массивных массивов изображений, которые я хочу центрировать (вычесть среднее значение и делить на стандартное отклонение). Могу я просто сделать это так?Центрирование массива цифровых изображений

# x is a np array 
img_mean = x.mean(axis=0) 
img_std = np.std(x) 
x = (x - img_mean)/img_std 
+0

Что такое 'x's форма? Это двумерное изображение? – Finwood

+0

Если x представляет собой двумерный массив numpy, эта операция должна работать. Теперь, как это относится к изображениям, это еще один вопрос. – roadrunner66

+0

Сделайте его более согласованным (x - x.mean (axis = 0))/x.std() – Hun

ответ

4

Я не думаю, что это то, что вы пытаетесь сделать.
Скажем, у нас есть массив как это:

In [2]: x = np.arange(25).reshape((5, 5)) 

In [3]: x 
Out[3]: 
array([[ 0, 1, 2, 3, 4], 
     [ 5, 6, 7, 8, 9], 
     [10, 11, 12, 13, 14], 
     [15, 16, 17, 18, 19], 
     [20, 21, 22, 23, 24]]) 

x.mean(axis=0) вычисляет среднее значение для каждого столбца (ось 0):

In [4]: x.mean(axis=0) 
Out[4]: array([ 10., 11., 12., 13., 14.]) 

вычитают из нашего первоначального x массива, каждое значение получает вычитается его значение:

In [5]: x - x.mean(axis=0) 
Out[5]: 
array([[-10., -10., -10., -10., -10.], 
     [ -5., -5., -5., -5., -5.], 
     [ 0., 0., 0., 0., 0.], 
     [ 5., 5., 5., 5., 5.], 
     [ 10., 10., 10., 10., 10.]]) 

Если мы не укажем ось для x.mean, весь массив принимаются:

In [6]: x.mean(axis=None) 
Out[6]: 12.0 

Это то, что вы делаете с x.std() всего времени, так как для np.std и np.mean оси по умолчанию является None.
Это может быть то, что вы хотите:

In [7]: x - x.mean() 
Out[7]: 
array([[-12., -11., -10., -9., -8.], 
     [ -7., -6., -5., -4., -3.], 
     [ -2., -1., 0., 1., 2.], 
     [ 3., 4., 5., 6., 7.], 
     [ 8., 9., 10., 11., 12.]]) 

In [8]: (x - x.mean())/x.std() 
Out[8]: 
array([[-1.6641005, -1.5254255, -1.3867504, -1.2480754, -1.1094003], 
     [-0.9707253, -0.8320502, -0.6933752, -0.5547002, -0.4160251], 
     [-0.2773501, -0.1386750, 0.  , 0.1386750, 0.2773501], 
     [ 0.4160251, 0.5547002, 0.6933752, 0.8320502, 0.9707253], 
     [ 1.1094003, 1.2480754, 1.3867504, 1.5254255, 1.6641005]]) 
Смежные вопросы