Está en la página 1de 9

Ulises Alejandro

290535
Ramos Juárez.
TAREA 1
Comparación entre dos imágenes.
FECHA 28/02/2023

Catedrático: Dr. Vargas Vázquez Damián.


Materia: Visión por computadora.
INDICE
INTRODUCCIÓN. .......................................................................................................................... 3
OBJETIVOS. ................................................................................................................................... 3
MARCO TEÓRICO. ....................................................................................................................... 3
Mapa de bits................................................................................................................................. 3
Operaciones sobre un pixel.......................................................................................................... 4
Inversión de color. ....................................................................................................................... 4
METODOLOGÍA. ........................................................................................................................... 4
RESULTADOS. .............................................................................................................................. 7
Ejercicio 1. ................................................................................ ¡Error! Marcador no definido.
Ejercicio 2. ................................................................................ ¡Error! Marcador no definido.
Ejercicio 3. ................................................................................ ¡Error! Marcador no definido.
Ejercicio 4. ................................................................................ ¡Error! Marcador no definido.
CONCLUSIONES. .......................................................................................................................... 9
REFERENCIAS BIBLIOGRÁFICAS Y ANEXOS. ...................................................................... 9
INTRODUCCIÓN.
El análisis y procesamiento de imágenes se realiza a través de computadoras, debido a la complejidad
y el número de cálculos necesarios para realizarlo. Es por esto que, si bien la formulación matemática
necesaria para su realización data de varios siglos atrás, la posibilidad real de utilizarla de forma
cotidiana en la práctica clínica ha sido posible recién en las últimas décadas, gracias al avance en las
tecnologías del hardware.
La proliferación de nuevos equipamientos con capacidad para realizar millones de operaciones por
segundo y su extensión a la vida cotidiana y a todo tipo de usuario, ha hecho posible que el análisis
y procesamiento de imágenes digitales se constituya en un gran campo de estudio. En la actualidad,
esta tecnología se encuentra incorporada incluso en todo tipo de equipamiento doméstico, como
cámaras digitales, scaners y teléfonos celulares, entre otros.
En la actualidad, las imágenes constituyen un lenguaje en sí mismas. Dependiendo de diferentes
factores culturales, las imágenes son utilizadas para transmitir mensajes, símbolos y distintos tipos
de información. Por esto, es necesario contar con un soporte para la representación digital de las
imágenes que permita luego modificar el mismo a fin de o bien modificar el contenido visual y
simbólico u obtener información necesaria.

OBJETIVOS.
• Abrir y comparar el contenido pixel a pixel de dos imágenes, y verificar si existen diferencias.
De hallarlas, genere una tercera imagen donde las diferencias serán resaltadas usando el filtro
negativo (el resto de la imagen se mantiene sin cambios).

MARCO TEÓRICO.
A continuación se definirán algunos conceptos importantes para poder comprender de mejor manera
el ejercicio:
Mapa de bits.
Un Bitmap es un modo elemental para representar imágenes digitales como información en el
hardware, específicamente la memoria, de un computador. Consiste, básicamente, en formar arreglos
de elementos (vectores, matrices, tensores) ordenados de modos específicos. En general, para el caso
típico de imágenes 2D, se realiza un ordenamiento por filas de elementos de matriz (pixels)
asignando a cada uno un valor que determina “el color” en esa posición de la imagen.
En el caso de imágenes en tonalidades de grises, el valor del elemento de matriz es un escalar;
mientras que para el caso de imágenes a color el valor de cada elemento de matriz es un vector de
tres coordenadas, cada una de las cuales especifica “el grado de influencia” de los colores rojo (Red
“R”), verde (Green “G”) y azul (Blue “B”), de modo que se denomina representación RGB). Existen
otros modos de representación a color, como por ejemplo CMYK (cián, magenta, amarillo y negro).
El uso típico de 8-bits está basado, principalmente, en dos motivos. En primer lugar, estudios
biométricos muestran que el ojo humano no es suficientemente sensible para diferenciar más de 256
niveles de intensidad para un dado color. Además, el rango de valores para los elementos de matriz
determinan las necesidad en cuanto a la capacidad de almacenamiento en el computador.
Entonces, para imágenes en tonalidades de grises, conocidas como “de una banda” el rango para los
valores de los elementos de matriz (escalares) es [0,255], mientras que para imágenes a color, los
valores de elementos de matriz (vectores de 3 coordenadas) asumen valores en
([0,255],[0,255],[0,255]). Sin embargo, también es frecuente encontrar representaciones
normalizadas para imágenes a color, es decir, elementos de matriz en ([0,1],[0,1],[0,1]) para
determinar los colores RGB.
Todos los colores en el rango visible pueden representarse como combinaciones RGB, variando
desde el negro (0,0,0) al blanco (255,255,255). Por lo tanto, una imagen RGB es representada por
un arreglo bidimensional de pixels, cada uno codificado en 3 bytes pudiendo asumir 2563 diferentes
valores de combinaciones vectoriales, es decir 16.8 millones de diferentes colores,
aproximadamente.

Operaciones sobre un pixel.


La introducción de operaciones espaciales que se llevan a cabo sobre los valores de pixels de la
imagen permiten:
• Operaciones de un pixel.
• Operaciones de vecindad.
• Transformaciones geométricas.
Se modifica el valor de un pixel de modo individual en la imagen original f(m,n), dando como
resultado g(m,n).

Inversión de color.
Se plantea como base una imagen como un mapa de bits en escala de grises, aunque esto puede ser
llevado a imágenes a color en cualquier formato, dado que la escala de grises sen encuentra en un
intervalo de valores de 0 a 255 se realiza la inversión de forma algebraica como la resta del valor
máximo menos el valor del pixel, trabajando de esta manera pixel a pixel, como si fuese una matriz
moviéndose pixel a pixel, realizándose de la siguiente manera:
𝐼𝑛𝑣 = 𝑉𝑀á𝑥 − 𝑉𝐴𝑐𝑡

METODOLOGÍA.
Realizar una serie de comparaciones entre pares de imágenes en formato RGB y escala de grises.
Localizar e identificar las potenciales diferencias entre dos imágenes y generar una tercera imagen
a partir de la comparación entre esas imágenes.

Pseudocódigo.
INICIO
Declarar las dos imágenes a trabajar img1, img2,img
Desde i=1 hasta i=20 repetir
Desde j=1 hasta j=20 repetir
SI(img1[i][j]!=img2[i][j])
Img3[i][j]=255-img1[i][j]
Abrir las 3 imágenes para ver las diferencias invertidas en la tercer imagen.
Esperar una tecla cualquiera.
FIN

Diagrama de flujo
Código.
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace std;


using namespace cv;

int main()
{
Mat src = imread("C:/Users/ale_r/Documents/8vo semestre/Visión por
computadora/img1.pgm", IMREAD_UNCHANGED);
Mat src1 = imread("C:/Users/ale_r/Documents/8vo semestre/Visión por
computadora/img2.pgm", IMREAD_UNCHANGED);
Mat inv = imread("C:/Users/ale_r/Documents/8vo semestre/Visión por
computadora/img2.pgm", IMREAD_UNCHANGED);
cout<<src.rows<<endl;
cout<<src.cols<<endl;
cout<<src1.rows<<endl;
cout<<src1.cols<<endl;
cout<<inv.rows<<endl;
cout<<inv.cols<<endl;

cout<<"\ncontando..."<<endl;for(int i=0; i<20;i++)


{
for(int j=0; j<20; j++)
{
int var=src.at<uchar>(i,j); int var1=src1.at<uchar>(i,j); if(var!=var1)
{
inv.at<uchar>(i,j)=255-(src.at<uchar>(i,j));cout<<"Primer imagen: "<<ends;
cout<<var<<endl;
cout<<"Segunda imagen: "<<ends;cout<<var1<<endl;
cout<<"Posicion: ["<<i<<","<<j<<"]"<<endl;
}
}
namedWindow("Imagen");imshow("Imagen",inv); namedWindow("Imagen1");
imshow("Imagen1",src1); namedWindow("Imagen2"); imshow("Imagen2",src);
}

waitKey();return 0;
}
RESULTADOS.

Figura 1. Posición de las diferencias y el valor de cada pixel.

Figura 2. Figura original.


Figura 3. Segunda figura con diferencias.
Visión por computadora

Figura 4. Ultima figura con las diferencias invertidas.

8
CONCLUSIONES.
En esta práctica se lleva acabo el proceso de la inversión de color de algunas partes o matrices,
trabajar las imágenes en escala de grises en forma de matriz, para asi poder modificar, partes
específicas, asi como crear una imagen en escalas de grises para poder resaltar algunas partes
comparadas con otras partes de la misma imagen o diferente.
Se logro concretar con éxito y de forma satisfactoria el objetivo de la practica, donde en los
resultados se puede apreciar la imagen final, como es invertida pixel por pixel donde la condición
de que ambas imágenes sean diferentes.

REFERENCIAS BIBLIOGRÁFICAS Y ANEXOS.


• Rodrigo Enríquez, (2016), Pseudocodigo y ejemplo, AREATECNOLOGICA. obtenido de:
https://www.areatecnologia.com/informatica/pseudocodigo.html#:~:text=No%20hay%20una
s%20reglas%20fijas,o%20menos%20el%20mismo%20vocabulario.&text=OJO%20escribir
%2020%20y%20escribir,entre%20comillas%2C%20los%20n%C3%BAmero%20NO.
• P. Peréz, M. Valente, (2018), Fundamentos básicos del procesamiento de imágenes. SPHINX.
Obtenido de: https://www.famaf.unc.edu.ar/~pperez1/manuales/cim/cap2.html
Visión por computadora

También podría gustarte