%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

f = mpimg.imread('../data/cameraman.tif')[:6,:10]  # slice das 6 primeiras linhas e 10 primeiras colunas
print('f=\n', f)
g = f.mean(axis=0)
print('g=\n', g.round(1))
print('f.shape=',f.shape)
print('f.mean(0).shape=',f.mean(axis=0).shape)

"""
Explanation: Numpy - operações que reduzem uma dimensão
Uma das categorias de operações matriciais bastante útil do Numpy é a de operações
que reduzem uma dimensão da matriz.
Por exemplo, se eu quero calcular o perfil de cinza médio das linhas de uma imagem, é
necessário fazer, para cada coluna, uma média entre todos os pixels daquela coluna.
Leia com atenção o tutorial:

Redução de eixo

O Numpy possui a facilidade de redução de eixo em muitas operações tais como mean, max, min, all, any, sum e
tantas outras.
Estas funções permitem passar como parâmetro a dimensão em que o ndarray será reduzido.
Vejamos o exemplo a seguir, agora usando a redução implícita sem a necessidade de fazer o laço anterior:
End of explanation
"""


f = mpimg.imread('../data/keyb.tif')
plt.imshow(f,cmap='gray')
m = f.mean()
print('f.mean', m)
hmax = f.max(axis=0)

plt.plot(f[75,:])

plt.plot(hmax)
#,ylabel='intensidade máxima',xlabel='coluna'),'f.max(0), valor máximo de cada coluna')

"""
Explanation: Veja o exemplo de cálculo de valor mínimo da uma imagem das teclas da calculadora na página master:tutorial_numpy_1_5a Redução de eixo.
Repita a seguir o mesmo exemplo, porém utilizando o perfil máximo no lugar do perfil mínimo:
End of explanation
"""


