You are on page 1of 6

function P_1_HISTOGRAMA(imagen)

img=imread(imagen); %lee la imagen

r1=img(:,:,1); %selecciona una matriz de componentes rojo

g1=img(:,:,2); %selecciona una matriz de componentes verde

b1=img(:,:,3); %selecciona una matriz de componentes azul

[f1,c1,i1]=size(img); % guarda los elementos de la matriz tamaño de imagen

A=f1*c1; %multiplica las filas por las columnas de la matriz

R2=reshape(r1,[1 A]); % remodela el tamaño de la matriz de componentes rojo en un matriz de


1x(f1*c1)

G2=reshape(g1,[1 A]); % remodela el tamaño de la matriz de componentes verde en un matriz


de 1x(f1*c1)

B2=reshape(b1,[1 A]); % remodela el tamaño de la matriz de componentes azul en un matriz


de 1x(f1*c1)

hold on %permite realizar varias funciones en una sola grafica

histogram(R2,256,'FaceColor','r') %realiza un histograma con la matriz de componentes rojo


con una intensidad de 0 a 256

histogram(G2,256,'FaceColor','g') %realiza un histograma con la matriz de componentes verde


con una intensidad de 0 a 256

histogram(B2,256,'FaceColor','b') %realiza un histograma con la matriz de componentes azul


con una intensidad de 0 a 256

end

function P_2_NORMALIZACION(imagen)

img=imread(imagen); %lee la imagen

img_R=img(:,:,1); %selecciona una matriz de componentes rojo

img_G=img(:,:,2); %selecciona una matriz de componentes verde

img_B=img(:,:,3); %selecciona una matriz de componentes azul

[f2,c2,i1]=size(img); %guarda los elementos de la matriz tamaño de imagen

A=f2*c2; %multiplica las filas por las columnas de la matriz

normR=(imhist(img_R,256))./A; %con el comando "himhist" se crea el histograma de los


componentes rojos de la matriz "img_R" y se divide entre A=f2*c2

normG=(imhist(img_G,256))./A; %con el comando "himhist" se crea el histograma de los


componentes verdes de la matriz "img_G" y se divide entre A=f2*c2
normB=(imhist(img_B,256))./A; %con el comando "himhist" se crea el histograma de los
componentes azules de la matriz "img_B" y se divide entre A=f2*c2

hold on %permite realizar varias funciones en una sola grafica

bar(normR,'FaceColor','r') %realiza un Grafico de barras con la matriz de componentes rojo con


una intensidad de 0 a 256

bar(normG,'FaceColor','g') %realiza un Grafico de barras con la matriz de componentes verde


con una intensidad de 0 a 256

bar(normB,'FaceColor','b') %realiza un Grafico de barras con la matriz de componentes azul


con una intensidad de 0 a 256

end

function P_3_GRISES_SIMPLE(imagen)

img=imread(imagen); %lee la imagen

k = [0.3333 0.3333 0.3333]; % vector k que calcula el promedio de cada compoente

GRISES_S = img(:,:,1)*k(1)+img(:,:,2)*k(2)+img(:,:,3)*k(3); %funcion vectorizada que promedia


los componentes de la matriz de la imagen

imshow(GRISES_S) % muestra a imagen en escala de grises

end

function P_4_GRISES_PONDERADO(imagen)

img=imread(imagen);

k=[0.2126 0.7152 0.0722]; % vector k que calcula el ponderado de cada componente

GRISES_P=img(:,:,1)*k(1)+img(:,:,2)*k(2)+img(:,:,3)*k(3); %funcion vectorizada que calcula el


ponderado de los componentes de la matriz de la imagen

imshow(GRISES_P)

end

function P_5_BINARIZACION(imagen)

subplot(2,4,1)
img=imread(imagen);

img_gris=rgb2gray(img);%convierte la imagen en escala de grises

BIN=img_gris<=100; %binariza la imagen con un umbral que toma pixeles menores que 100

imshow(BIN) % muestra la imagen binarizada

title('UMBRAL <= 100') % da titulo a la imagen

subplot(2,4,2)

img=imread(imagen);

img_gris=rgb2gray(img);

BIN=img_gris<=120;

imshow(BIN)

title('UMBRAL <= 120')

subplot(2,4,3)

img=imread(imagen);

img_gris=rgb2gray(img);

BIN=img_gris<=140;

imshow(BIN)

title('UMBRAL <= 140')

subplot(2,4,4)

img=imread(imagen);

img_gris=rgb2gray(img);

BIN=img_gris<=160;

imshow(BIN)

title('UMBRAL <= 160')

subplot(2,4,5)

img=imread(imagen);

img_gris=rgb2gray(img);

BIN=img_gris<=180;
imshow(BIN)

title('UMBRAL <= 180')

subplot(2,4,6)

img=imread(imagen);

img_gris=rgb2gray(img);

BIN=img_gris<=200;

imshow(BIN)

title('UMBRAL <= 200')

subplot(2,4,7)

img=imread(imagen);

img_gris=rgb2gray(img);

BIN=img_gris<=220;

imshow(BIN)

title('UMBRAL <= 220')

subplot(2,4,8)

img=imread(imagen);

img_gris=rgb2gray(img);

BIN=img_gris<=240;

imshow(BIN)

title('UMBRAL <= 240')

end

function P_6_COMPARAR_2IMG

img=imread('RAIJIN.jpg'); %lee la imagen 'RAIJIN.jpg'

img_gris=rgb2gray(img); %convierte la imagen a escala de grises

[f2,c2,i1]=size(img); %guarda los elementos de la matriz tamaño de imagen


P1=(imhist(img_gris,256))./(f2*c2); %normaliza el histograma de la imagen en escala de grises

gmi=imread('FUJIN.jpg'); %lee la imagen 'FUJIN.jpg'

gmi_gris=rgb2gray(gmi); %convierte la imagen a escala de grises

[f2,c2,i2]=size(gmi); %guarda los elementos de la matriz tamaño de imagen

P2=(imhist(gmi_gris,256))./(f2*c2); %normaliza el histograma de la imagen en escala de grises

EUCLID=sqrt(sum(P1-P2)^2) % calcula la distancia euclidiana de las 2 imagenes

if (EUCLID == 0) %si la distancia euclidiana es 0

disp('igual') %entonces las 2 imagenes son iguales

elseif (EUCLID <= 100) %si la distancia euclidiana menor o igual a 0

disp('similar') %entonces las 2 imagenes son similares

else (EUCLID > 100) %si la distancia euclidianamayor que 0

disp('distintos') %entonces las 2 imagenes son distintas

end

function P_7_GRISES_FOR(imagen)

img=imread(imagen); %lee la imagen

[f1,c1,i1]=size(img);%guarda los elementos de la matriz tamaño de imagen

for f=1:f1; %para los valores de f son de 1 hasta f1

for c=1:c1; %para los valores de c son de 1 hasta c1

for i=1:i1; %para los valores de i son de 1 hasta i1

img_GRIS_P(f,c,i)=img(f,c,1)*0.2126+img(f,c,2)*0.7152+img(f,c,3)*0.0722;%usando el
metodo de promedio ponderado convierte la imagen a escala de grises

img_GRIS_P=im2uint8(img_GRIS_P); % convierte las intensidades a uint8

end

end

end

imshow(img_GRIS_P)
end

function P_10_ROTACION(imagen)

img=imread(imagen); % lee la imagen

[f10 c10 i10]=size(img); % guarda los elementos de la matriz tamaño de imagen

for f=1:f10; % para los valores de f son de 1 hasta f10

for c=1:c10; % para los valores de c son de 1 hasta c10

for i=1:i10; % para los valores de i son de 1 hasta i10

img_rot(f,c,i)=img(f10-f+1,c10-c+1,i); %gira la imagen tomando en cuenta que para f10


resta un valor de f(f va tomando valores desde 1 hasta f10)

end

end

end

imshow(img_rot)

end

function P_11_SEPIA(imagen)

img=imread(imagen); % lee la imagen

R=[0.393, 0.769, 0.189]; %vector que conviertira los componentes rojo a tono sepia

G=[0.349, 0.686, 0.168]; %vector que conviertira los componentes verde a tono sepia

B=[0.272, 0.534, 0.131]; %vector que conviertira los componentes azul a tono sepia

SEPIA(:,:,1)=(img(:,:,1))*R(1)+(img(:,:,2))*R(2)+(img(:,:,3))*R(3);%convierte los componentes


rojos a tono sepia

SEPIA(:,:,2)=(img(:,:,1))*G(1)+(img(:,:,2))*G(2)+(img(:,:,3))*G(3);%convierte los componentes


verdes a tono sepia

SEPIA(:,:,3)=(img(:,:,1))*B(1)+(img(:,:,2))*B(2)+(img(:,:,3))*B(3);%convierte los componentes


azules a tono sepia

imshow(SEPIA)

end

You might also like