ROZMYWANIE
%I=imread('cameraman.tif'); % ten format jest bez rgb2gray
I= imread(
'G:\STUDIA\Matlab\1.jpg'
);
%to tego potrzebne -> rgb2gray(I)
I=double(I)/255;
I=rgb2gray(I);
% przekszta³ca obraz RGB do szarej mapy kolorów.
M=ones(10);
M=M/100;
C=conv2(I,M);
% oblicza dwuwymiarowy splot macierzy I i M.
figure;
imshow(C);
imwrite(C,
'G:\test.jpg'
,
'jpg'
);
% zapisuje plik do jpg
ROZMYWANIE Filter2
% rozmycie obrazka przez filter2
L=imread(
'cameraman.tif'
);
L=double(L)/255;
%tworzenie macierzy
h1 = [8 8];
h2 = [8 8 8 8];
h3 = [1 1 1 1];
h4 = [-1 -1 -1 -1];
% negatyw znormalizowany , gdy liczby ujemne
h5 = [-1 -1];
h6 = [-1];
h7 = [-1 1];
% gradient w osi OX , gdzy liczby mieszane
h8 = [1 -1];
% gradient w osi Oy , gdzy liczby mieszane
h9 = [-8 8];
h10 = [-1;1];
% ; -> macierz w pionie
h11 = [-8;100];
h12 = [100;-100];
h13 = [-1 -1 -1 100];
% normalny obrazek, poniewaz 100 jest najwieksze i
najwazniejsze
h14 = [-100 1];
h15 = [88 -89];
h16 = [88 87 86];
h17 = [-88 -88];
h18 = [-88 90];
% tak liczymy, gdy h > 0
L1=filter2(h1,L)/sum(sum(h1));
L2=filter2(h2,L)/sum(sum(h2));
L3=filter2(h3,L)/sum(sum(h3));
L16=filter2(h16,L)/sum(sum(h16));
% tak liczymy, gdy h < 0
L4=filter2(h4,L);
L4=mat2gray(L4);
L5=filter2(h5,L);
L5=mat2gray(L5);
L6=filter2(h6,L);
L6=mat2gray(L6);
L7=filter2(h7,L);
L7=mat2gray(L7);
L8=filter2(h8,L);
L8=mat2gray(L8);
L9=filter2(h9,L);
L9=mat2gray(L9);
L10=filter2(h10,L);
L10=mat2gray(L10);
L11=filter2(h11,L);
L11=mat2gray(L11);
L12=filter2(h12,L);
L12=mat2gray(L12);
L13=filter2(h13,L);
L13=mat2gray(L13);
L14=filter2(h14,L);
L14=mat2gray(L14);
L15=filter2(h15,L);
L15=mat2gray(L15);
L17=filter2(h17,L);
L17=mat2gray(L17);
L18=filter2(h18,L);
L18=mat2gray(L18);
figure;
imshow([L1, L2, L3, L4, L5, L6; L7, L8, L9, L10, L11, L12; L13, L14, L15, L16,
L17, L18]);
Film_filter2
L1 = imread(
'cameraman.tif'
);
L1 = double(L1)/255
for
i= -10:10
h=[10 i]
% macierz [10 (-10 do 10)]
L2=filter2(h,L1)
L2=mat2gray(L2);
imshow(L2)
pause(0.0001)
end
Normalizacja
I = imread(
'cameraman.tif'
);
J = imadjust(I,[0.5 1],[0 1]);
%normalny zakres [0 1] [0 1] czarny bialy
figure,
% nowe okienko
imshow([I,J])
% obrazek, obrazek po normalizacji
figure, imhist([I,J])
% wyswietlanie histogramu
dwa_obrazki_nałożenie_zakodowane
L1 = imread(
'G:\STUDIA\Matlab\1.jpg'
);
L2 = imread(
'G:\STUDIA\Matlab\2.jpg'
);
L1=double(L1)/255;
% konwersja
L2=double(L2)/255;
L3 = (L1 * 0.5) + (L2 * 0.5);
%obrazki nalozone na siebie po polowie,
ukrywanie obrazka (L1 * 0) + (L2 * 0.99)
imshow(L3);
Odkodowanie
L1 = imread(
'cameraman.tif'
);
L3 = imread(
'C:\Matlab\babcia.tif'
);
L1=double(L1)/255;
% konwersja
L3=double(L3)/255;
L2 =(L3-L1*0.99)/0.01 ;
imshow(L2);
Zadania kolos I
1)
L=imread(
'cameraman.tif'
);
L_R = L;
L_G = L;
L_B = L;
L_R(80:160, 80:200)= 0;
L_G(80:160, 80:200)= 256;
L_B(80:160, 80:200)= 0;
L2=cat(3, L_R, L_G, L_B);
%cat powiekszenie tablic po przez doklejenie innych
tablic
figure; imshow(L2)
2)
L_R=[1,0 ; 0,0.85 ; 1,1];
L_G=[0,0 ; 1,0.85 ; 1,0];
L_B=[0,1 ; 0,0.85 ; 1,0];
L1=cat(3,L_R,L_G,L_B);
figure;
L2=[1, 2; 3, 4; 5, 1];
L2MAP=[1, 0, 0 ; 0, 0, 1; 0, 1, 0; 0.85, 0.85, 0.85; 1, 1, 1];
subplot(1,2,1); imshow(L1)
% subplot -pozwala na umieszczenie wiêcej ni¿
jednego wykresu w jednym oknie graficznym. (ilosc wierszy,kolumn,numer podokna)
subplot(1,2,2); imshow(L2, L2MAP)
3)
L1=imread(
'rice.png'
);
L2=[L1(129:256, 129:256), L1(129:256, 1:128); L1(1:128, 129:256), L1(1:128,
1:128)];
figure;
subplot(1,2,1); imshow(L1);
subplot(1,2,2); imshow(L2)
4)
L1=imread(
'onion.png'
);
L2=cat(3,L1(:,:,3), L1(:,:,1), L1(:,:,2));
figure;
subplot(1,2,1); imshow(L1,
'notruesize'
)
subplot(1,2,2); imshow(L2,
'notruesize'
)
Zadania kolos II
1)
L1=imread(
'cameraman.tif'
);
Ziel=L1;
Ziel(1:
2
:256,1:
2
:256)=255
% zielony piksel co 2
S=cat(3,L1,Ziel,L1);
imshow(S)
2)
ryz=imread(
'rice.png'
);
A=ryz(1:128,1:128);
B=ryz(1:128,129:256);
C=ryz(129:256,1:128);
D=ryz(129:256,129:256);
B=255-B;
%negatyw
Negatyw=[D B;C A];
imshow([ryz,Negatyw])
3)
CAM=imread(
'cameraman.tif'
);
A=CAM(:,1:128);
B=CAM(:,129:256);
B=imresize(B,0.5);
%zmiejsza obrazek 2 razy
B=imresize(B,2);
%zwieksza o 2 razy obrazek
new=[B,A];imshow(new);
Binaryzacja_film
L1=imread(
'cameraman.tif'
);
L1=double(L1)/255;
for
i=0:0.01:1
L2=L1<i;
imshow(L2)
title([
'pr binaryzacja'
,mat2str(i)])
pause(0.01)
end
Binaryzacja
L1=imread(
'cameraman.tif'
);
L1=double(L1)/255;
L2=L1<0.5;
figure; imshow([L1,L2])
Transformacje
L=imread(
'F:\STUDIA\MATLAB\misiu.JPG'
);
L1=L(1:490,1:200, 1:3);
L2=L(1:490,201:400, 1:3);
L3=L(1:490,400:-1:200, 1:3);
L4=L(1:490,200:-1:1, 1:3);
new = [L1,L4];
new2 = [L3,L2];
figure();
imshow([L,new,new2]);
%imwrite(new,'F:\STUDIA\MATLAB\test12.JPG','JPG');
%imwrite(new2,'F:\STUDIA\MATLAB\test13.JPG','JPG');
FILM_Długi
L1=imread(
'F:\STUDIA\MATLAB\snieg.bmp'
);
L2=imread(
'onion.png'
);
L111=imread(
'F:\STUDIA\MATLAB\1.JPG'
);
L222=imread(
'F:\STUDIA\MATLAB\2.JPG'
);
figure
D=[];
for
i=1:50
L22=L2;
L1=[L1(end,:);L1(1:(end-1),:)];
L11=double(cat(3,L1,L1,L1));
L22(L11==0)=255;
imshow(L22);
D(1:size(L22,1),1:size(L22,2),1:3,i)=L22;
pause(0.0001);
end
j=26;
for
i=0:0.1:1
L3 = (L111 * i) + [L2 * (1 - i)];
imshow(L3)
pause(0.01)
D(1:size(L3,1),1:size(L3,2),1:3,j)=L3;
j=j+1;
end
for
i=0:0.1:1
L33 = (L222 * i) + [L111 * (1 - i)];
imshow(L33)
pause(0.01)
D(1:size(L33,1),1:size(L33,2),1:3,j)=L33;
j=j+1;
end
%mov=immovie(uint8(D));
%movie2avi(mov,'c:/test2236.avi','compression','Indeo5')