O erro do código
img = io.imread(r'arquivos/logo_alura/1200x630wa.png')
img = color.rgb2gray(img)
img = transform.resize(img, (img.shape[0]//10, img.shape[1]//10) )
saida = convolve(img, kernel_v, 'valid')
plt.imshow(img, cmap='gray')
plt.title('Imagem')
plt.figure(figsize=(8, 5))
plt.imshow(np.abs(saida), cmap='gray')
plt.colorbar()
plt.title('Mapa de ativação')
Erro
ValueError: the input array must have size 3 along
channel_axis, got (630, 1200, 4)
Se dá pela linha img = color.rgb2gray(img)
, pois a logo da alura:
Está no formato CMYK, com 4 canais. A solução se dá em 'cortar' um canal fora, alterando a linha para:
img = io.imread(r'arquivos/logo_alura/1200x630wa.png')[:,:,:3]
ficando:
img = io.imread(r'arquivos/logo_alura/1200x630wa.png')[:,:,:3]
img = color.rgb2gray(img)
img = transform.resize(img, (img.shape[0]//10, img.shape[1]//10) )
saida = convolve(img, kernel_v, 'valid')
plt.imshow(img, cmap='gray')
plt.title('Imagem')
plt.figure(figsize=(8, 5))
plt.imshow(np.abs(saida), cmap='gray')
plt.colorbar()
plt.title('Mapa de ativação')