Cada miércoles, Nibcode Solutions te traerá un nuevo problema de Álgebra Lineal, cuya respuesta se publicará los martes de la semana siguiente. Los problemas cubrirán los temas más importantes del Álgebra Lineal, desde problemas simples hasta algunos un poco más complejos, pero todos orientados a proporcionarte ejemplos que te permitan comprender los conceptos principales y los métodos de resolución de problemas del Álgebra Lineal.
Este problema de la semana involucra la multiplicación de matrices, que se considera la operación matricial más importante, y aunque no es tan sencilla como la adición, el método no es difícil de comprender.
En este artículo, el último de esta serie, mostraremos una implementación en JavaScript que cubre toda la teoría vista en los tres artículos anteriores. También explicaremos cómo utilizar el objeto canvas de HTML5 para que puedas hacer tu propia implementación de los conceptos de procesamiento de imágenes.
El editor de imágenes usando JavaScript que se presenta en este artículo, permite aplicar filtros y realizar transformaciones a cualquier imagen que seleccione. Además, cuando se mueve el cursor sobre la imagen, se puede ver, debajo de la imagen, una matriz de 5x5 de los píxeles que rodean el píxel que se encuentra en la posición del cursor.
En el procesamiento digital de imágenes existe un grupo de transformaciones que reciben las coordenadas de un píxel como entrada, y retornan las nuevas coordenadas donde el píxel debe ser colocado; de forma que, al computar estas trasformaciones para todos los píxeles de una imagen, se obtiene una nueva imagen.
Nos centraremos en un tipo de estas transformaciones, las transformaciones afines, las cuales preservan la colinealidad (puntos y líneas rectas, planos, etc.). Las transformaciones afines mapean puntos en nuevos puntos aplicando una combinación lineal de operaciones de traslación, rotación, escalado y transvección.
En el artículo anterior explicamos como una imagen puede ser representada como una matriz de píxeles, donde cada píxel se expresa como un vector tridimensional, compuesto por la cantidad de rojo, verde y azul del color. En este artículo, vamos a dar algunos ejemplos sobre el uso del álgebra lineal en el procesamiento digital de imágenes.
Un tipo de procesamiento de imágenes son los llamados filtros. Entre los más utilizados se encuentran: el ajuste de brillo, contraste y colores, la conversión a escala de grises, la inversión de color (negativo), la corrección gamma, el desenfoque y la reducción de ruido.
Cuando pensamos en el álgebra lineal, la primera idea que nos viene a la mente es un sistema de ecuaciones lineales que necesita ser resuelto, o su variante gráfica más sencilla, un plano cartesiano con dos rectas, para hallar el punto de intersección; pero lo que probablemente muchos no saben es que herramientas como Photoshop o librerías de funciones como OpenGL o DirectX hacen un amplio uso del álgebra lineal para muchas de sus funcionalidades.
En esta serie de artículos abordaremos algunos conceptos básicos de la aplicación del álgebra lineal en el Procesamiento de Imágenes. En el primer artículo nos centraremos en sus aplicaciones y cómo representar una imagen como una matriz, en el segundo y tercero vamos a exponer algunas de las operaciones con matrices en una imagen, y en el último mostraremos algunos ejemplos prácticos en JavaScript.