Você está na página 1de 4

% TE817 - Viso Computacional

% Aula 02 - 11.08.11
% Trabalho 01 - Entrega em 11.08.18
clear all
close all
clc
Mi = imread('imagem.jpg', 'jpg');
%MiR = Mi(:,:,1);
%MiG = Mi(:,:,2);
%MiB = Mi(:,:,3);
%MiR_cinza = mat2gray(MiR);
%MiG_cinza = mat2gray(MiG);
%MiB_cinza = mat2gray(MiB);
%MiR_gama = imadjust(MiR_cinza);
%MiG_gama = imadjust(MiG_cinza);
%MiB_gama = imadjust(MiB_cinza);
%MiR_gamat = imadjust(MiR_cinza, [], [], 0.1);
%MiG_gamat = imadjust(MiG_cinza, [], [], 0.1);
%MiB_gamat = imadjust(MiB_cinza, [], [], 0.1);
Mi_8b = rgb2gray(Mi);
gama = input('Digite o valor de gama: ');%input('Digite o valor de gama :: 0 < g
ama < 1 :: gama = ');
Mi_gama = imadjust(Mi_8b, [], [], gama);
plano = input('Digite qual(is) plano(s) manter entre colchetes: ');
[lin, col] = size(Mi_8b);
for k = 1:length(plano)
switch plano(k)
case 1, % 2^1 = 2 :: 0 a 1
for i = 1:lin
for j = 1:col
if ( (Mi_8b(i, j) >= (2^(plano(k)-1)-1)) && (Mi_8b(i, j) <=
(2^(plano(k))-1)) )
temp(i, j, k) = Mi_8b(i, j);
else
temp(i, j, k) = 255;
end
end
end
%
temp = temp*2^(plano(k)-1);
case 2, % 2^2 = 4 :: 2 a 3
for i = 1:lin
for j = 1:col
if ( (Mi_8b(i, j) >= (2^(plano(k)-1))) && (Mi_8b(i, j) <= (2
^(plano(k))-1)) )
temp(i, j, k) = Mi_8b(i, j);
else
temp(i, j, k) = 255;
end
end
end
%
temp = temp*2^(plano(k)-1);
case 3, % 2^3 = 8 :: 4 a 7
for i = 1:lin

for j = 1:col
if ( (Mi_8b(i, j) >= (2^(plano(k)-1)))
^(plano(k))-1)) )
temp(i, j, k) = Mi_8b(i, j);
else
temp(i, j, k) = 255;
end
end
end
%
temp = temp*2^(plano(k)-1);
case 4, % 2^4 = 16 :: 8 a 15
for i = 1:lin
for j = 1:col
if ( (Mi_8b(i, j) >= (2^(plano(k)-1)))
^(plano(k))-1)) )
temp(i, j, k) = Mi_8b(i, j);
else
temp(i, j, k) = 255;
end
end
end
%
temp = temp*2^(plano(k)-1);
case 5, % 2^5 = 32 :: 16 a 31
for i = 1:lin
for j = 1:col
if ( (Mi_8b(i, j) >= (2^(plano(k)-1)))
^(plano(k))-1)) )
temp(i, j, k) = Mi_8b(i, j);
else
temp(i, j, k) = 255;
end
end
end
%
temp = temp*2^(plano(k)-1);
case 6, % 2^6 = 64 :: 32 a 63
for i = 1:lin
for j = 1:col
if ( (Mi_8b(i, j) >= (2^(plano(k)-1)))
^(plano(k))-1)) )
temp(i, j, k) = Mi_8b(i, j);
else
temp(i, j, k) = 255;
end
end
end
%
temp = temp*2^(plano(k)-1);
case 7, % 2^7 = 128 :: 64 a 127
for i = 1:lin
for j = 1:col
if ( (Mi_8b(i, j) >= (2^(plano(k)-1)))
^(plano(k))-1)) )
temp(i, j, k) = Mi_8b(i, j);
else
temp(i, j, k) = 255;
end
end
end
%
temp = temp*2^(plano(k)-1);
case 8, % 2^8 = 256 :: 128 a 255
for i = 1:lin

&& (Mi_8b(i, j) <= (2

&& (Mi_8b(i, j) <= (2

&& (Mi_8b(i, j) <= (2

&& (Mi_8b(i, j) <= (2

&& (Mi_8b(i, j) <= (2

for j = 1:col
if ( (Mi_8b(i, j) >= (2^(plano(k)-1))) && (Mi_8b(i, j) <= (2
^(plano(k))-1)) )
temp(i, j, k) = Mi_8b(i, j);
else
temp(i, j, k) = 255;
end
end
end
%
temp = temp*2^(plano(k)-1);
end
end
soma_planos = zeros(lin, col);
for k = 1:length(plano)
soma_planos = soma_planos + temp(:,:,k);%*2^(plano(k)-1);
end
soma_planos = uint8(soma_planos);
%for i = 1:lin
%
for j = 1:col
%
if ( (Mi_8b(i, j) >= (2^(plano-1))) && (Mi_8b(i, j) < (2^(plano)-1)) )
%
temp(i, j, k) = 255;
%
else
%
temp(i, j, k) = Mi_8b(i, j);
%
end
%
end
%end
%temp = uint8(temp);
%figure,
%imhist(temp)
figure,
imshow(Mi)
title('Imagem Original')
figure,
imshow(Mi_8b)
title('Imagem em Nveis de Cinza [8 bits]')
figure,
imhist(Mi_8b)
title('Histograma da em Nveis de Cinza [8 bits]')
figure,
imshow(Mi_gama)
title('Imagem em Nveis de Cinza [8 bits] - Correo Gama')
figure,
imhist(Mi_gama)
title('Histograma da em Nveis de Cinza [8 bits] - Correo Gama')
figure,
imshow(soma_planos)
title('Imagem em Nveis de Cinza [8 bits] - Planos de Bits')
figure,
axis([0 (2^8)-1 0 (2^8)-1])
[X, Y] = ginput(2);

m = (Y(2) - Y(1)) / (X(2) - X(1));


AlargamentoDeContraste = Mi_8b*m;
figure,
imshow(AlargamentoDeContraste)
title('Imagem em Nveis de Cinza [8 bits] - Alargamento de Contraste')
figure,
imhist(AlargamentoDeContraste)
title('Histograma da em Nveis de Cinza [8 bits] - Correo Gama')
teste = imadjust(Mi_8b,[X(1)/255; X(2)/255],[Y(1)/255; Y(2)/255], 1);
figure,
imshow(teste)
title('Imagem em Nveis de Cinza [8 bits] - Alargamento de Contraste')
figure,
imhist(teste)
title('Histograma da em Nveis de Cinza [8 bits] - Correo Gama')
% tentativa de equalizao
figure,
histeq(Mi_8b)
title('Equalizao')