O processamento de imagens é um dos módulos essenciais que precisam estar disponíveis em todas as linguagens de programação, especialmente quando se trata de aprendizado de máquina ou aprendizado profundo. A linguagem de programação do Python é altamente recomendada para todos os tipos de aprendizado de máquina e aprendizado profundo e, quando se trata de processamento de imagens, o Python fornece a biblioteca scipy. A Biblioteca Cipy em Python possui um submódulo ndimage especificamente dedicado ao processamento de imagens na linguagem de programação Python. Neste artigo, explicaremos o que é o processamento da imagem e como ele pode ser feito usando o submódulo NDIMage da biblioteca scipy.
O que é processamento de imagem na linguagem de programação Python?
Qualquer trabalho realizado com uma imagem é conhecido como processamento de imagem, eu.e., ler, escrever, modificar, manipular, etc. feito em imagens para extrair informações significativas deles. Para manipular ou transformar imagens, a linguagem de programação Python é mais comumente usada. As tarefas mais comuns que podem ser executadas para processamento de imagens são mostrar imagens, girar, girar, cortar, afiar, denoise, etiqueta, extração de recursos, etc. Todas essas funções podem ser executadas facilmente em imagens com a biblioteca scipy e seu módulo ndimage.
O que é scipy ndimage?
O ndimage significa N-Dimensional Image e é fornecido como um módulo pela Biblioteca Cipy. É composto por uma variedade de funções de processamento e análise de imagem FMOR. Várias tarefas relacionadas ao processamento de imagens, eu.e., Extração de recursos, entrada, saída, inversão, rotação, classificação, etc., pode ser realizado com o módulo ndimage. O pacote ndimage da biblioteca scipy é dedicado a operar com matrizes de n dimensões. Inclui funções para medição de objetos, morfologia binária, filtragem linear, interpolação de spline b e filtragem não linear. Vamos explicar a função do módulo ndimage com exemplos para ajudá -lo a entender como essas funções funcionam.
Exemplo 1:
Aqui, explicaremos o método 'correlato' do módulo ndimage. O método correlato do módulo ndimage funciona como uma correlação multidimensional. O método 'correlato' é usado para correlacionar a imagem com o kernel fornecido. O método 'correlato' para processamento de imagem é usado para mover o kernel sobre a imagem e calcular a soma do produto em cada local. Veja o código de amostra fornecido no snippet abaixo:
importar numpy como np
de Scipy.NDIMAGE IMPORT CORRELATE
Imprimir (correlato (NP.Arange (100), [2, 4.5]))
Aqui, começamos a importar a biblioteca Numpy como NP no programa para que pudéssemos usar ainda mais suas funções relevantes no programa. Depois disso, importamos a biblioteca scipy junto com seu módulo ndimage e método correlacionado. Lembre -se de que você precisa incluir todas as bibliotecas e módulos do programa para usar seus métodos e funções relevantes. Se você não incluir as bibliotecas, acabará lidando com erros e bugs. As funções e métodos da linguagem de programação Python não funcionam sem importar suas bibliotecas de pais para o programa.
Todas as bibliotecas necessárias são importadas e podemos começar a trabalhar no código principal. Observe que usamos a função de organização com a variável NP, que representa a biblioteca Numpy, para fazer uma matriz de 100 valores. Os pesos [2, 4.5] são atribuídos à matriz e a matriz e o peso são passados para a função correlato. Agora vamos ver o que a matriz foi produzida pelo ndimag.função correlacionada. A saída é dada abaixo:
Exemplo 2:
No exemplo anterior, você deve ter notado que, apesar de dar peso a um número de ponto flutuante, a matriz produzida está em números inteiros. É porque, por padrão, a função correlato produz um número inteiro; Portanto, você precisa mencionar especificamente como deseja obter sua matriz de saída. Vamos ver como você pode conseguir isso verificando as linhas de código fornecidas no snippet de código abaixo:
importar numpy como np
de Scipy.NDIMAGE IMPORT CORRELATE
Imprimir (correlato (NP.Arange (100), [2, 4.5], saída = np.float64))
Novamente, as bibliotecas e módulos necessários são importados para o programa e depois o ndimage.A função correlato é chamada. Como você pode ver, o tipo de dados da matriz de saída é fornecido como 'flaot64', o que significa que a matriz resultante terá números de ponto flutuante. Veja a matriz de saída resultante fornecida na captura de tela abaixo:
Exemplo 3:
Como sabemos, as imagens são representadas por matrizes multidimensionais, uma vez que cada número na matriz representa um pixel da imagem. Então, aqui estamos usando a função correlato para a matriz 1D. Para trabalhar com o núcleo 1D e mudar o filtro na imagem, temos a função correlato1D. Veja o código de amostra fornecido no trecho de código abaixo:
importar numpy como np
de Scipy.NDIMAGE IMPORT CORRELATE1D
arr = [1, 2, 2, 1, 1, 2]
Imprimir (correlato1D (arr, [1, 2, 1])))
Aqui vamos explicar como gerenciar a origem do kernel com a função correlato1D. Normalmente, a origem do kernel está no centro, que é calculada dividindo as dimensões do formato do kernel por 2. No trecho de código fornecido acima, você pode ver que as bibliotecas necessárias são importadas primeiro para o programa e, em seguida, uma matriz chamada ARR é declarada contendo seis valores. A matriz com seus pesos correspondentes foi passada para a função correlato1D. Agora vamos ver como a função correlato1D encontra a origem do kernel da matriz dada. O resultado está abaixo:
Exemplo 4:
Primeiro, aprendemos como a função correlato1D encontra a origem do kernel; Agora vamos aprender como podemos mudar a origem do kernel explicitamente. Às vezes é necessário selecionar a origem de um kernel diferente do centro, então, para isso, temos o parâmetro "origem". O parâmetro de origem passado para a função correlato1D permite que você escolha convenientemente uma origem diferente do kernel.
importar numpy como np
de Scipy.NDIMAGE IMPORT CORRELATE1D
arr = [1, 2, 2, 1, 1, 2]
Imprimir (correlato1D (arr, [1, 2, 1], origem = -1))
O resultado da escolha de um kernel diferente para o filtro é fornecido na saída abaixo:
Exemplo 5:
Vamos aprender a remodelar a matriz conforme necessário. As imagens podem ser remodeladas, modificadas, giradas, cortadas, etc. com as funções de processamento de imagem. Aqui, vamos guiá -lo sobre como remodelar a matriz com a função correlato1D. A função de remodelamento é fornecida pela biblioteca Numpy, por isso é usada com a variável NP. Veja o código de amostra fornecido no trecho de código abaixo:
importar numpy como np
de Scipy.NDIMAGE IMPORT CORRELATE1D
arr = np.ARANGE (100).remodelar (20, 5)
Imprimir (correlato1D (arr, [1, 2, 1])))
A matriz produzida conterá 100 itens em 20 linhas e 5 colunas. Veja a matriz resultante dada abaixo:
Conclusão
Neste artigo, aprendemos sobre o processamento de imagens na linguagem de programação Python. O processamento de imagens é uma característica muito essencial de qualquer linguagem de programação, pois trabalhar com imagens se tornou mais prevalente do que trabalhar com dados brutos. Portanto, o Python fornece funções para trabalhar com imagens em várias bibliotecas como Numpy, Scipy, etc. Aqui, usamos o módulo ndimage com funções correlatos e correlatos1D para funcionar para processamento de imagens com matrizes multidimensionais.