Imagens e matrizes NumPy
Os arrays NumPy encontram amplo uso no armazenamento e manipulação de dados de imagem. Mas, O que realmente são dados de imagem?
As imagens são compostas por pixels que são armazenados como uma matriz. Cada pixel tem um valor que varia entre 0 e 255: 0 indica um pixel preto e 255 indica um pixel branco. Uma imagem colorida consiste em três matrizes 2-D, um para cada um dos canais de cor: vermelho, verde e azul, colocados um atrás do outro, formando assim uma matriz 3-D. Cada valor na matriz constitui um valor de pixel. Então, el tamaño de la matriz depende de la cantidad de píxeles a lo largo de cada dimensão"Dimensão" É um termo usado em várias disciplinas, como a física, Matemática e filosofia. Refere-se à extensão em que um objeto ou fenômeno pode ser analisado ou descrito. Em física, por exemplo, fala-se de dimensões espaciais e temporais, enquanto em matemática pode se referir ao número de coordenadas necessárias para representar um espaço. Compreendê-lo é fundamental para o estudo e....
Dê uma olhada na próxima imagem:
Python pode ler a imagem como uma matriz usando o scipy.misc.imread () método na biblioteca SciPy. E quando nós o geramos, é simplesmente uma matriz 3d que contém os valores de pixel:
import numpy as np import matplotlib.pyplot as plt from scipy import misc # read image im = misc.imread('./original.jpg') # image im
variedade([[[115, 106, 67], [113, 104, 65], [112, 103, 64], ..., [160, 138, 37], [160, 138, 37], [160, 138, 37]], [[117, 108, 69], [115, 106, 67], [114, 105, 66], ..., [157, 135, 36], [157, 135, 34], [158, 136, 37]], [[120, 110, 74], [118, 108, 72], [117, 107, 71], ...,
Podemos verificar a forma e o tipo desta matriz NumPy:
imprimir(im.shape) imprimir(modelo(modelo))
(561, 997, 3) numpy.ndarray
Agora, uma vez que uma imagem é apenas uma matriz, podemos facilmente manipulá-lo usando uma função de matriz que vimos no post. O que, poderíamos virar a imagem horizontalmente usando o np.flip () método:
# flip
plt.imshow(np.flip(Im, eixo = 1))
ou você pode normalizar ou alterar a gama de valores de pixels. As vezes, isso é útil para cálculos mais rápidos.
im / 255
variedade([[[0.45098039, 0.41568627, 0.2627451 ], [0.44313725, 0.40784314, 0.25490196], [0.43921569, 0.40392157, 0.25098039], ..., [0.62745098, 0.54117647, 0.14509804], [0.62745098, 0.54117647, 0.14509804], [0.62745098, 0.54117647, 0.14509804]], [[0.45882353, 0.42352941, 0.27058824], [0.45098039, 0.41568627, 0.2627451 ], [0.44705882, 0.41176471, 0.25882353], ..., [0.61568627, 0.52941176, 0.14117647], [0.61568627, 0.52941176, 0.13333333], [0.61960784, 0.53333333, 0.14509804]], [[0.47058824, 0.43137255, 0.29019608], [0.4627451 , 0.42352941, 0.28235294], [0.45882353, 0.41960784, 0.27843137], ..., [0.6 , 0.52156863, 0.14117647], [0.6 , 0.52156863, 0.13333333], [0.6 , 0.52156863, 0.14117647]], ...,
Lembre-se de que isso está usando os mesmos ufuncs e conceito de streaming que vimos no post!!
Existem muitas outras coisas que você poderia fazer para manipular suas imagens que seriam úteis ao classificar imagens usando redes neurais.. Se você estiver interessado em construir seu próprio classificador de imagens, Você pode acessar aqui um tutorial incrível sobre o assunto!!
Notas finais
Postagens Relacionadas:
- SQL para ciência de dados | Guia do iniciante em SQL para ciência de dados
- Estatísticas para ciência de dados | Um guia para iniciantes em estatística para ciência de dados
- Estágio em Ciência de Dados | Guia de Iniciantes para obter um estágio em ciência de dados
- Tutorial de expressões regulares Python | Tutorial de Python Regex