Este artículo fue publicado como parte del Blogatón de ciencia de datos
Introducción
El procesamiento de imágenes digitales consiste en las diversas técnicas y métodos involucrados en la manipulación de imágenes en una computadora. Se realizan varios tipos de operaciones en las imágenes, que constituyen el procesamiento de imágenes digitales.
¿Comprender qué es una imagen en realidad?
La imagen es básicamente una señal bidimensional. La función de señal es f (x, y), donde el valor de xey en un punto genera el píxel en el punto. La imagen es básicamente una matriz bidimensional que consta de números entre 0 y 255.
Varios factores están involucrados en el procesamiento de imágenes. El procesamiento de imágenes tiene algunos motivos principales.
Ayuda de procesamiento de imágenes en:
1. Mejora de la información digital almacenada por nosotros.
2. Automatización del trabajo con imágenes.
3. Mejor optimización de la imagen que conduce a un almacenamiento y transmisión eficientes.
A lo largo de los años, el procesamiento de imágenes ha mejorado mucho y existen muchas aplicaciones comerciales modernas de procesamiento de imágenes.
Usos del procesamiento de imágenes:
1. Corrección de imagen, nitidez y corrección de resoluciónLa "resolución" se refiere a la capacidad de tomar decisiones firmes y cumplir con los objetivos establecidos. En contextos personales y profesionales, implica definir metas claras y desarrollar un plan de acción para alcanzarlas. La resolución es fundamental para el crecimiento personal y el éxito en diversas áreas de la vida, ya que permite superar obstáculos y mantener el enfoque en lo que realmente importa....
A menudo, deseamos poder mejorar las imágenes antiguas. Y eso es posible hoy en día. El zoom, la nitidez, la detección de bordes y las ediciones de alto rango dinámico se incluyen en esta categoría. Todos estos pasos ayudan a mejorar la imagen. La mayoría de los programas de edición y el código de corrección de imágenes pueden hacer estas cosas fácilmente.
2. Filtros en la edición de aplicaciones y redes sociales
La mayoría de las aplicaciones de edición y las aplicaciones de redes sociales ofrecen filtros en estos días.
Arriba hay un ejemplo de la imagen original y la imagen filtrada. Los filtros hacen que la imagen se vea más atractiva visualmente. Los filtros suelen ser un conjunto de funciones que cambian los colores y otros aspectos de una imagen que hacen que la imagen se vea diferente. Los filtros son una aplicación interesante del procesamiento de imágenes.
3. Tecnología médica:
En el campo de la medicina, el procesamiento de imágenes se utiliza para diversas tareas, como tomografía por emisión de positrones, imágenes de rayos X, tomografía computarizada médica, imágenes UV, procesamiento de imágenes de células cancerosas y mucho más. La introducción del procesamiento de imágenes en el campo de la tecnología médica ha mejorado enormemente el proceso de diagnóstico.
(Fuente de la imagen: https://axisimagingnews.com/radiology-products/imaging-equipment/x-ray/image-processing-software-mimics-grid-use-improve-image-quality)
La imagen de la izquierda es la imagen original. La imagen de la derecha es la imagen procesada. Podemos ver que la imagen procesada es mucho mejor y se puede utilizar para un mejor diagnóstico.
4. Visión por computadora / máquina:
Una de las aplicaciones más interesantes y útiles del procesamiento de imágenes es la visión por computadora. La visión por computadora se utiliza para hacer que la computadora vea, identifique cosas y procese todo el entorno como un todo. Un uso importante de la visión por computadora es la conducción de automóviles, drones, etc. CV ayuda a detectar obstáculos, reconocer caminos y comprender el entorno.
(Fuente: calles de París a los ojos del piloto automático de Tesla https://youtu.be/_1MHGUC_BzQ)
Así es como funciona la visión por computadora típica para los pilotos automáticos de automóviles. La computadora captura imágenes en vivo y analiza otros autos, la carretera y otros obstáculos.
5. Reconocimiento de patrones:
El reconocimiento de patrones es parte del procesamiento de imágenes que involucra inteligencia artificial y aprendizaje automático. El procesamiento de imágenes se utiliza para descubrir varios patrones y aspectos en las imágenes. El reconocimiento de patrones se utiliza para el análisis de escritura a mano, el reconocimiento de imágenes, el diagnóstico médico asistido por computadora y mucho más.
6. Procesamiento de video:
El video es básicamente un movimiento rápido de imágenes. En el procesamiento de video se utilizan varias técnicas de procesamiento de imágenes. Algunos métodos de procesamiento de video son eliminación de ruido, estabilización de imagen, conversión de velocidad de cuadro, mejora de detalles y mucho más.
Comenzando con el procesamiento de imágenes en Python:
Comencemos con algunas tareas básicas relacionadas con la imagen en Python. Haremos uso de PIL.
La biblioteca de imágenes de Python se utiliza para varias tareas de procesamiento de imágenes.
Instalación:
pip install pillow
Con PIL instalado, ahora podemos pasar al código.
Primero, trabajamos con algunas funciones de matplotlibLas funciones son relaciones matemáticas que asignan a cada elemento de un conjunto, llamado dominio, un único elemento de otro conjunto, llamado codominio. Se representan comúnmente como ( f(x) ), donde ( f ) es la función y ( x ) es el valor del dominio. Las funciones son fundamentales en diversas áreas de la matemática y sus aplicaciones, permitiendo modelar fenómenos y resolver problemas en ciencias, ingeniería y economía.....
import matplotlib.image as img import matplotlib.pyplot as plt import numpy as np %matplotlib inline
Se leerá la siguiente imagen. Se llama image1.jpg.
# reading jpg image img = img.imread('image1.jpg') plt.imshow(img)
Se lee la imagen.
# modifying the shape of the image lum1 = img[:, :, 0] plt.imshow(lum1)
Ahora se modifica la forma de la imagen.
Ahora lo cambiaremos al mapa de colores «caliente». Para leer más sobre el mapa de colores, visite este Enlace.
plt.imshow(lum1, cmap ='hot') plt.colorbar()
La salida de la imagen se ve:
Ahora probamos con un mapa de colores diferente.
imgplot = plt.imshow(lum1) imgplot.set_cmap('nipy_spectral')
Salida de imagen:
La razón para usar mapas de colores es que, a menudo en diversas aplicaciones y usos, es útil tener un mapa de colores uniforme. Leer más sobre Colourmaps: Elegir mapas de colores en Matplotlib.
Ahora echemos un vistazo a por qué llamamos a una imagen una matriz 2D.
#data type of lum1 print(type(lum1))
Salida:
print(lum1)
[[ 92 91 89 … 169 168 169]
[110 110 110 … 168 166 167]
[100 103 108 … 164 163 164]
…
[ 97 96 95 … 144 147 147]
[ 99 99 98 … 145 139 138]
[102 102 103 … 149 137 137]]
Los puntos están ahí para mostrar que hay muchos más puntos de datos en el medio. Pero una cosa es segura, es que todos son datos numéricos.
Encontremos el tamaño de la matriz.
len(lum1)
Salida: 320
Salida: 658
Esto nos da la cantidad de píxeles y las dimensiones de la imagen: 320 * 658.
También lo verificaremos más adelante.
Ahora trabajamos con PIL.
from PIL import Image
Usaremos este archivo de imagen, llamado: people.jpg.
img2 = Image.open('people.jpg') plt.imshow(img2)
Se lee la imagen.
Ahora, cambiamos el tamaño de la imagen.
img2.thumbnail((50, 50), Image.ANTIALIAS) # resizes image in-place imgplot = plt.imshow(img2)
imgplot1 = plt.imshow(img2, interpolation="nearest")
imgplot2 = plt.imshow(img2, interpolation="bicubic")
Pero, ¿por qué desenfocamos las imágenes a propósito en el procesamiento de imágenes? Bueno, a menudo para los algoritmos de reconocimiento de patrones y visión por computadora, se vuelve difícil procesar las imágenes si son muy nítidas. Por lo tanto, el desenfoque se realiza para suavizar las imágenes. El desenfoque también hace que la transición de color en una imagen, de un lado a otro, sea mucho más suave.
Ahora, verifiquemos las dimensiones de la imagen del automóvil, en lo que trabajamos antes.
#some more interesting stuff file="image1.jpg" with Image.open(file) as image: width, height = image.size #Image width, height is be obtained
Estas son las dimensiones que obtuvimos también. Entonces podemos concluir que la imagen es 320 * 658.
Intentemos también rotar y transponer la imagen.
#Relative Path img3 = Image.open("image1.jpg") #Angle given img_rot= img3.rotate(180) #Saved in the same relative location img_rot.save("rotated_picture.jpg")
Esta es la imagen rotada.
#transposing image transposed_img = img3.transpose(Image.FLIP_LEFT_RIGHT) #Saved in the same relative location transposed_img.save("transposed_img.jpg")
Esta es la imagen transpuesta.
Ultimas palabras:
El procesamiento de imágenes tiene varias aplicaciones importantes y, con el tiempo, los métodos y procesos también mejorarán.
Sobre mí:
Prateek Majumder
Ciencia de datos y análisis | Especialista en marketing digital | SEO | Creación de contenido
Conéctate conmigo en Linkedin.
Gracias.
Los medios que se muestran en este artículo sobre procesamiento de imágenes digitales no son propiedad de DataPeaker y se utilizan a discreción del autor.