Proceso de imagen de SciPy

Proceso de imagen de SciPy

El procesamiento de imágenes es uno de los módulos esenciales que deben estar disponibles en cada lenguaje de programación, especialmente cuando se trata de aprendizaje automático o aprendizaje profundo. El lenguaje de programación de Python es muy recomendable para todo tipo de aprendizaje automático y aprendizaje profundo, y cuando se trata de procesamiento de imágenes, Python proporciona la biblioteca Scipy. La biblioteca Scipy en Python tiene un submódulo ndimage específicamente dedicado al procesamiento de imágenes en el lenguaje de programación de Python. En este artículo, explicaremos qué es el procesamiento de imágenes y cómo se puede hacer utilizando el submódulo ndimage de la biblioteca Scipy.

¿Qué es el procesamiento de imágenes en el lenguaje de programación de Python??

Cualquier trabajo realizado con una imagen se conoce como procesamiento de imágenes, yo.mi., leer, escribir, modificar, manipular, etc. realizado en imágenes para extraer información significativa de ellas. Para manipular o transformar imágenes, el lenguaje de programación de Python se usa más comúnmente. Las tareas más comunes que se pueden realizar para el procesamiento de imágenes son para mostrar imágenes, rotar, voltear, recortar, afilar, Desoise, etiqueta, extracción de características, etc. Todas estas funciones se pueden realizar fácilmente en imágenes con la biblioteca Scipy y su módulo ndimage.

¿Qué es Scipy Ndimage??

El Ndimage significa imagen n-dimensional y la biblioteca Scipy proporciona un módulo como módulo. Se compone de una variedad de funciones para procesamiento y análisis de imágenes. Varias tareas relacionadas con el procesamiento de imágenes, yo.mi., Extracción de características, entrada, salida, volteo, rotación, clasificación, etc., se puede realizar con el módulo ndimage. El paquete ndimage de la biblioteca Scipy está dedicado a operar con matrices de n dimensiones. Incluye funciones para la medición de objetos, morfología binaria, filtrado lineal, interpolación B-spline y filtrado no lineal. Explicaremos la función del módulo ndimage con ejemplos para ayudarlo a comprender cómo funcionan estas funciones.

Ejemplo 1:

Aquí, explicaremos el método 'correlacionar' del módulo ndimage. El método de correlacionamiento del módulo NDIMAGE funciona como una correlación multidimensional. El método 'correlacionar' se utiliza para correlacionar la imagen con el núcleo dado. El método 'correlacionar' para el procesamiento de imágenes se utiliza para mover el núcleo sobre la imagen y calcular la suma del producto en cada ubicación. Consulte el código de muestra dado en el fragmento a continuación:

importar numpy como np
De Scipy.Ndimage Import Correlate
imprimir (correlacionar (NP.Arange (100), [2, 4.5])

Aquí, comenzamos con la importación de la biblioteca Numpy como NP en el programa para que pudiéramos usar aún más sus funciones relevantes en el programa. Después de eso, importamos la biblioteca Scipy junto con su módulo ndimage y el método de correlacionar. Recuerde que debe incluir todas las bibliotecas y módulos en el programa para usar sus métodos y funciones relevantes. Si no incluye las bibliotecas, terminará tratando con errores y errores. Las funciones y métodos del lenguaje de programación de Python no funcionan sin importar sus bibliotecas de padres en el programa.

Se importan todas las bibliotecas requeridas y podemos comenzar a trabajar en el código principal. Tenga en cuenta que utilizamos la función Arreglar con la variable NP, que representa la biblioteca Numpy, para hacer una matriz de 100 valores. Los pesos [2, 4.5] se asignan a la matriz, y tanto la matriz como el peso se pasan a la función de correlacionamiento. Ahora veamos qué matriz ha sido producida por el ndimag.función de correlacionar. La salida se da a continuación:

Ejemplo 2:

En el ejemplo anterior, debe haber notado que a pesar de dar peso a un número de punto flotante, la matriz producida está en números enteros. Es porque, por defecto, la función de correlato produce un número entero; Por lo tanto, específicamente necesita mencionar cómo desea obtener su matriz de salida. Veamos cómo puede lograrlo revisando las líneas de código dadas en el fragmento de código a continuación:

importar numpy como np
De Scipy.Ndimage Import Correlate
imprimir (correlacionar (NP.Arange (100), [2, 4.5], salida = np.Float64))

Nuevamente, las bibliotecas y módulos requeridos se importan al programa y luego la NDIMAGE.Se llama a la función de correlacionamiento. Como puede ver, el tipo de datos de la matriz de salida se proporciona como 'Flaot64', lo que significa que la matriz resultante tendrá números de puntos flotantes. Consulte la matriz de salida resultante dada en la captura de pantalla a continuación:

Ejemplo 3:

Como sabemos, las imágenes están representadas por matrices multidimensionales ya que cada número en la matriz representa un píxel de la imagen. Entonces, aquí estamos utilizando la función de correlato para la matriz 1D. Para trabajar con el núcleo 1D y cambiar el filtro en la imagen, tenemos la función correlato1D. Consulte el código de muestra dado en el fragmento de código a continuación:

importar numpy como np
De Scipy.ndimage import correlate1d
arr = [1, 2, 2, 1, 1, 2]
Imprimir (Correlate1D (arr, [1, 2, 1]))

Aquí explicaremos cómo gestionar el origen del núcleo con la función correlato1D. Normalmente, el origen del núcleo está en el centro, que se calcula dividiendo las dimensiones de la forma del núcleo por 2. En el fragmento de código dado anteriormente, puede ver que las bibliotecas requeridas se importan primero al programa, y ​​luego se declara una matriz llamada ARR que contiene seis valores. La matriz con sus pesos correspondientes se ha pasado a la función correlato1D. Ahora veamos cómo la función Correlate1D encuentra el origen del núcleo de la matriz dada. El resultado está a continuación:

Ejemplo 4:

Primero, aprendimos cómo la función Correlate1D encuentra el origen del núcleo; Ahora aprendamos cómo podemos cambiar el origen del núcleo explícitamente. A veces se requiere seleccionar un origen de kernel diferente al centro, por lo que, para eso, tenemos el parámetro de "origen". El parámetro de origen pasado a la función correlato1D le permite elegir convenientemente un origen diferente del núcleo.

importar numpy como np
De Scipy.ndimage import correlate1d
arr = [1, 2, 2, 1, 1, 2]
imprimir (correlate1d (arr, [1, 2, 1], origen = -1))

El resultado de elegir un núcleo diferente para el filtro se da en la salida a continuación:

Ejemplo 5:

Aprendamos a remodelar la matriz según sea necesario. Las imágenes se pueden remodelar, modificar, rotar, recortar, etc. con las funciones de procesamiento de imágenes. Aquí, lo guiaremos sobre cómo remodelar la matriz con la función correlato1D. La función de remodelación es proporcionada por la biblioteca Numpy, por lo que se utiliza con la variable NP. Consulte el código de muestra dado en el fragmento de código a continuación:

importar numpy como np
De Scipy.ndimage import correlate1d
arr = np.Arange (100).remodelar (20, 5)
Imprimir (Correlate1D (arr, [1, 2, 1]))

La matriz producida contendrá 100 elementos en 20 filas y 5 columnas. Vea la matriz resultante que se da a continuación:

Conclusión

En este artículo, aprendimos sobre el procesamiento de imágenes en el lenguaje de programación de Python. El procesamiento de imágenes es una característica muy esencial de cualquier lenguaje de programación ya que trabajar con imágenes se ha vuelto más frecuente que trabajar con datos sin procesar. Por lo tanto, Python proporciona funciones para trabajar con imágenes en varias bibliotecas como Numpy, Scipy, etc. Aquí, utilizamos el módulo NDIMAGE con funciones correlacionadas y correlacionadas1D para funcionar para el procesamiento de imágenes con matrices multidimensionales.