FIC MATLAB 2017-2/Aula-11

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
%-- 17-10-2017 19:06:13 --%
edit
ls
im1 = imread('imagem1.jpeg');
whos im1
figure
imshow(im1)
im1(1:8,1:8)
figure
imshow(im1')
im1_sem_cabeca = im1;
im1_sem_cabeca(140:204,148:203) = 0;
figure
imshow(im1_sem_cabeca)
x = randi([0 255],8,8)
max(max(x))
min(min(x))
format compact
abs(x - 255)
x
im1_negativo = abs(im1-255);
max(max(im1))
min(min(im1))
max(max(im1_negativo))
min(min(im1_negativo))
figure
imshow(im1_negativo)
im1(1:8,1:8)-255
im1(1:8,1:8)
x = im1;
im1_negativo = abs(double(im1)-255);
im1_negativo(1:8,1:8)
imshow(im1_negativo)
im1_negativo = uint8(abs(double(im1)-255));
imshow(im1_negativo)
-im1(1:8,1:8)
-im1(1:8,1:8)+255
255-im1(1:8,1:8)
% Aumentando o brilho da imagem
im1_brilhante = im1+50;
figure
imshow(im1_brilhante)
im1_brilhante = im1+100;
imshow(im1_brilhante)
im1_brilhante = im1+200;
imshow(im1_brilhante)
% Binarização
im1(40:48,40:48)
x = randi([0 255],8,8)
% Janela: imagem com o randi
x = randi([0 255],500,500);
figure
x = uint8(randi([0 255],500,500));
imshow(x)
x = randi([0 255],8,8)
x > 150
im1_binarizado = im1 > 150;
figure
imshow(im1_binarizado)
% Contraste
im1_cont1 =zeros(size(im1));
im1_binarizado = im1 > 150;
x1 = im1_binarizado .* im1;
x1 = double(im1_binarizado) .* im1;
x1 = double(im1_binarizado) .* double(im1);
figure
imshow(uint8(x1))
im1_binarizado = im1 <= 150;
x2 = double(im1_binarizado) .* double(im1);
imshow(uint8(x2))
x2 = double(im1_binarizado) .* double(im1) - double(im1_binarizado)*10;
x2 = double(im1_binarizado) .* double(im1) - double(im1_binarizado)*100;
imshow(uint8(x2))
im1_binarizado = im1 > 150;
x1 = double(im1_binarizado) .* double(im1) + double(im1_binarizado)*100;
x = uint8(x1+x2);
imshow(x)
edit contraste.m
contraste
figure
contraste
im1(im1 > limiar)
contraste
close all
imshow(im1)
% Suavização
mask1 = (1/9)*ones(3,3)
sum(sum(mask1))
suav1 = conv2(im1,mask1);
suav1 = conv2(double(im1),mask1);
figure
imshow(suav1)
imshow(uint8(suav1))
mask1 = (1/36)*ones(6,6)
suav1 = conv2(double(im1),mask1);
imshow(uint8(suav1))
mask2 = (1/36)*ones(6,6
mask2 = eye(2)
x = conv2(double(im1),mask1);
x = conv2(double(im1),mask2);
imshow(uint8(x))
mask2 = [1 1; -1 -1]
x = conv2(double(im1),mask2);
imshow(uint8(x))
% Imagem colorida
ls
im2 = imread('imagem2.jpeg');
whos im2
figure
imshow(im2)
figure
subplot(2,2,1); imshow(im2)
subplot(2,2,2); imshow(im2(:,:,1))
title('Componente R')
subplot(2,2,3); imshow(im2(:,:,2)); title('Componente G')
subplot(2,2,4); imshow(im2(:,:,3)); title('Componente B')
im2_R(:,:,1) = im2(:,:,1);
im2_R(:,:,2) = 0;
im2_R(:,:,3) = 0;
subplot(2,2,2); imshow(im2_R)
im3 = rgb2gray(im2);
figure
imshow(im3)
im4 = double(im3)^2;
figure; imshow(uint8((im4/max(max(im4))) * 255))
im5 = double(inv(im3));
im5 = inv(double(im3));
max(max(im5))
min(min(im5))
im6 = im5 + min(min(im5));
figure; imshow(uint8(255*im6/max(max(im6))))
im7 = uint8(255*im6/max(max(im6));
im7 = uint8(255*im6/max(max(im6)));
max(max(im7))
sum(sum(im7 == 180))
im8 = randi([0 255],500,500,3);
figure
imshow(im8)
imshow(uint8(im8))
while true; imshow(uint8(randi([0 255],500,500,3))); pause(0.1); end
while true; imshow(uint8(randi([-75 75],600,600,3) + im2)); pause(0.1); end
while true; imshow(uint8(randi([-75 75],600,600,3) + double(im2))); pause(0.1); end
while true; imshow(uint8(randi([-75 75],600,600,3) + double(im2))); pause(0.01); end
while true; imshow(uint8(randi([-130 130],600,600,3) + double(im2))); pause(0.01); end
a = 0:0.001:1;
i = 1;
while true; imshow(uint8(a(mod(i,length(a)))*(randi([-130 130],600,600,3) + double(im2)))); pause(0.01); i = i+1; end
a = 0:0.01:1;
i = 1;
while true; imshow(uint8(a(mod(i,length(a)))*(randi([-130 130],600,600,3) + double(im2)))); pause(0.01); i = i+1; end
i = 1;
while true; imshow(uint8(a(mod(i,length(a))+1)*(randi([-130 130],600,600,3) + double(im2)))); pause(0.01); i = i+1; end
close all
i = 1;
figure
while true; imshow(uint8(a(mod(i,length(a))+1)*(randi([-130 130],600,600,3) + double(im2)))); pause(0.01); i = i+1; end
b = [a a(end:-1:1)];
i = 1;
i = 1; while true; imshow(uint8(b(mod(i,length(b))+1)*(randi([-130 130],600,600,3) + double(im2)))); pause(0.01); i = i+1; end
close all


% contraste.m

limiar = 150;
cont = 50;

%% Modo 1
%x1 = double(im1  > limiar) .* (double(im1) + cont);
%x2 = double(im1 <= limiar) .* (double(im1) - cont);
%x = uint8(x1+x2);

%% Modo 2
%x = zeros(size(im1));
%x(im1  > limiar) = im1(im1  > limiar) + cont;
%x(im1 <= limiar) = im1(im1 <= limiar) - cont;

%% Modo 3
a = double(im1) / limiar;
b = a .^ 2;
c = uint8(b * limiar);

figure
imshow(c)