Vídeo: Pesquisas e Coleta de Dados | Formulários Google | Apps Show Brasil 2024
Os arquivos de dados não estruturados consistem em uma série de bits. O arquivo não separa os bits uns dos outros de qualquer maneira. Você não pode simplesmente olhar para o arquivo e ver qualquer estrutura porque não há nenhum para ver. Os formatos de arquivo não estruturados dependem do usuário do arquivo para saber como interpretar os dados.
Por exemplo, cada pixel de um arquivo de imagem pode consistir em três campos de 32 bits. Saber que cada campo é de 32 bits depende de você. Um cabeçalho no início do arquivo pode fornecer pistas sobre a interpretação do arquivo, mas mesmo assim, cabe a você saber como interagir com o arquivo.
Este exemplo mostra como trabalhar com uma imagem como um arquivo não estruturado. O exemplo de imagem é uma oferta de domínio público de recursos comuns. wikimedia. org. Para trabalhar com imagens, você precisa acessar a biblioteca scikit-image, que é uma coleção gratuita de algoritmos usados para processamento de imagem. Aqui está um tutorial para esta biblioteca.
A primeira tarefa é poder exibir a imagem na tela usando o seguinte código. (Este código pode exigir um pouco de tempo para ser executado. A imagem está pronta quando o indicador de ocupado desaparecer da guia do notebook do IPython.)
de skimage. io importar imread
da skimage. transformar o tamanho de importação
da importação de matplotlib pyplot como plt
importar matplotlib. cm como cm
example_file = (" // upload. wikimedia. org /" +
"wikipedia / commons / 7 / 7d / Dog_face. png")
image = imread (example_file, as_grey = Verdadeiro)
plt. imshow (imagem, cmap = cm. cinza)
plt. show ()
O código começa importando uma série de bibliotecas. Em seguida, ele cria uma string que aponta para o arquivo de exemplo on-line e coloca-o em
example_file
. Essa cadeia faz parte da chamada de método
imread ()
, juntamente com
as_grey
, que está definida para
True
. O argumento
as_grey
informa Python para transformar imagens em cores em escala de cinza. Quaisquer imagens que já estão em escala de cinza permanecem assim.
Agora que você tem uma imagem carregada, é hora de renderizá-la (prepare-a para exibir na tela. A função
imshow ()
executa a renderização e usa um mapa de cores em escala de cinza. > A função show ()
exibe, de fato,
imagem
para você.
A imagem aparece na tela depois de renderizar e mostrar.
Feche a imagem quando terminar de visualizá-la. (O asterisco na entrada Na [*]:
informa que o código ainda está em execução e você não pode passar para a próxima etapa.) O ato de fechar a imagem termina o segmento de código. Você agora tem uma imagem na memória, e você pode querer saber mais sobre isso.Quando você executa o seguinte código, você descobre o tipo e o tamanho da imagem:
imprimir ("tipo de dados:% s, forma:% s"%
(tipo (imagem), forma da imagem))
A saída desta chamada indica que o tipo de imagem é um
numpy. ndarray
e que o tamanho da imagem é 90 pixels por 90 pixels. A imagem é realmente uma série de pixels que você pode manipular de várias maneiras. Por exemplo, se você quiser cortar a imagem, você pode usar o seguinte código para manipular a matriz de imagens:
image2 = image [5: 70, 0: 70]
plt. imshow (image2, cmap = cm. cinza)
plt. show ()
O
numpy. ndarray
em
image2
é menor que o de
imagem
, então a saída também é menor. Os resultados típicos são mostrados abaixo. A finalidade de cortar a imagem é fazer com que seja um tamanho específico. Ambas as imagens devem ter o mesmo tamanho para você analisá-las. O corte é uma forma de garantir que as imagens sejam o tamanho correto para a análise.
Cortar a imagem torna mais pequeno.
image3 = redimensionar (image2, (30, 30), mode = "mais próximo")
plt. imshow (image3, cmap = cm. cinza)
print ("tipo de dados:% s, shape:% s"%
(tipo (image3), image3. shape))
A saída do < impressão ()
função informa que a imagem agora é de 30 pixels por 30 pixels de tamanho. Você pode compará-lo a qualquer imagem com as mesmas dimensões.
Depois de ter todas as imagens no tamanho certo, você precisa atacá-las. Uma linha de conjunto de dados é sempre uma única dimensão, e não duas dimensões. A imagem atualmente é uma matriz de 30 pixels por 30 pixels, portanto, você não pode fazer parte de um conjunto de dados. O seguinte código aplana
image3
para que se torne uma matriz de 900 elementos que está armazenada em
image_row
:
image_row = image3. aplique ()
impressão ("tipo de dados:% s, forma:% s"%
(digite (image_row), shape image_row))
Observe que o tipo ainda é um numpy
. ndarray
. Você pode adicionar esta matriz a um conjunto de dados e usar o conjunto de dados para fins de análise. O tamanho é de 900 elementos, conforme previsto.