Vous êtes sur la page 1sur 3

Ajuste de contraste

Oscar Martín Déciga Flores


7 de septiembre 2017
Materia:
Procesamiento digital de imágenes

Instituto Tecnológico Superior de Irapuato


Ing. Mecatrónica
Profesor: Gerardo Trejo Caballero
El contraste, se define como: “el cambio de luminosidad entre las zonas más oscuras o más
claras de una imagen.
Empezaremos trabajando con una imagen en específico nombrada “ImagenContraste.jpg”.

Esta imagen que se muestra primero le aplicaremos un ajuste de brillo de 100, con lo que
obtendremos una imagen más brillosa o más blanca, y se le nombrara
“ImagenContraste00.jpg”.
function[B]=AjusteContraste(A)
A=double(A(:,:,1));
Imin=min(min(A));
Imax=max(max(A));
B=255*(A-Imin)/(Imax-Imin);
B=uint8(B);
end
Comenzando por la primera línea o cabecera le daremos nombre a nuestra función y
declararemos nuestras variables de entrada (A) y salida (B).
En la segunda línea estaremos declarando nuestra variable de entrada dándole un valor de
doble precisión, “(A(:,:, 1))” selecciona el primer "panel" de la matriz "A", si la matriz sólo
tiene un panel (por ejemplo, una imagen en escala de grises), entonces esa parte es redundante
pero correcta, si la matriz tiene varios paneles (por ejemplo, una imagen RGB), selecciona la
primera de ellas (probablemente el panel rojo).
“double ()” indica que deben examinarse los valores numéricos de la entrada y se construirá
una nueva matriz del mismo tamaño que tenga los mismos valores numéricos pero que se
represente como tipos de datos de doble precisión, esto quiere decir que convierte un entero
signo de 8 bits valor “3” a su equivalente “3.0”, la razón de hacer esto es ser capaz de hacer
la resta de la imagen y tener los resultados en negativos si es apropiado (la resta entera de 8
bits no puede producir resultados negativos y utiliza 0 donde los resultados serían negativos.).
La tercera y cuarta línea tiene las funciones “min y max” aplicada a nuestra variable o matriz
“A”, que donde devolverá los valores mínimos y máximos respectivamente de A.
La quinta línea estará haciendo a operación que realizara el ajuste de contraste, mientras que
una vez se haya terminado las sentencias anteriores se proseguirá con la penúltima línea
forzando a “B” a convertir los valores a enteros sin signo de 8 bits en la escala de grises, la
última línea es el final de la función.
clc,clear all, close all;
A=input('Imagen de Entrada: ','s');
I=imread(A);
B=AjusteContraste(I);
figure(1);
subplot(1,2,1);
imshow(I);
subplot(1,2,2)
imshow(B);

En este programa pediremos al usuario que ingrese la imagen que se le ajusto anteriormente
un brillo de 100 “ImagenContraste00.jpg”.
Como hemos visto en los anteriores programas, por lo general la estructura de los programas
no cambia, lo único que cambia vendría siendo la tercera y cuarta línea, que estará leyendo
la imagen “A” guardada en “I” mientras que la variable “B” llamara la función
“AjusteContraste” aplicándola en “I”.
Como resultado obtendremos una mejor imagen visualmente como se mostrara.

Resultado: