Citra merupakan fungsi kontinu dari intensitas cahaya pada bidang dua dimensi. Secara matematis fungsi intensitas cahaya pada bidang dua dimensi dinotasikan sebagai f(x,y), dimana (x,y) merupakan koordinat pada bidang dua dimensi dan f(x,y) merupakan intensitas cahaya pada bidang dua dimensi.
Pada button Open Picture ketikkan listing dibawah ini
if not openpicturedialog1.Execute then exit else
begin
gambar := tbitmap.Create;
gambar.LoadFromFile(openpicturedialog1.FileName);
image1.Picture.Bitmap := gambar;
end;
Pada button Matrik ketikkan listing dibawah ini
var text : TextFile;
kata : String;
temp : PByteArray;
i,j : Integer;
gambar : TBitmap;
begin
kata :='matrik.txt';
assignfile(text,kata);
gambar := image1.Picture.Bitmap;
rewrite(text);
writeln(text,'================================== MATRIKS ==============================');
memo1.Clear;
for j :=0 to gambar.Height-1 do
begin
temp := gambar.ScanLine[j];
i:=0;
repeat
write(text,inttostr(temp[i])+ ' - ');
i:=i+1;
until i > 3*gambar.Height-1;
end;
closefile(text);
memo1.Lines.LoadFromFile(kata);
pada button invert
var temp : pbytearray;
x,y,k :integer;
begin
for y :=0 to gambar.Height-1 do
begin
temp := gambar.ScanLine[y];
x := 0;
repeat
for k := 0 to 2 do
temp [x+k] := not temp[x+k];
// temp [x+k] := 0; kasi hitam
inc(x,3);
until x>3* gambar.Width-1 ;
end;
image2.Picture.Bitmap := gambar;
Pada button Matrik ketikkan listing dibawah ini // matrik invert
var text : TextFile;
kata : String;
temp : PByteArray;
i,j : Integer;
gambar : TBitmap;
begin
kata :='matrikinvert.txt';
assignfile(text,kata);
gambar := image2.Picture.Bitmap;
rewrite(text);
writeln(text,'============================== MATRIKS INVERT ==========================');
memo1.Clear;
for j :=0 to gambar.Height-1 do
begin
temp := gambar.ScanLine[j];
i:=0;
repeat
write(text,inttostr(temp[i])+ ' - ');
i:=i+1;
until i > 3*gambar.Height-1;
end;
closefile(text);
memo2.Lines.LoadFromFile(kata);
Pada button Fourier ketikkan listing dibawah ini
var n,u : integer;
temp : pbytearray;
x,y,k :integer;
con,tampung : real;
fourier : array[0..10000] of real;
begin
n := (gambar.Height-1) * (gambar.Width-1);
for u := 0 to n-1 do
tampung := 0;
begin
for y :=0 to gambar.Height-1 do
begin
temp := gambar.ScanLine[y];
x := 0;
repeat
for k := 0 to 2 do
con := temp[x] * cos (2*pi*u*(x/n));
tampung := tampung + con;
temp [x+k] := 0;
inc(x,3);
until x>3* gambar.Width-1 ;
fourier[x] := 1/n;
end;
image3.Picture.Bitmap := gambar;
end;
Pada button Matrik ketikkan listing dibawah ini // matrik fourier
var text : TextFile;
kata : String;
temp : PByteArray;
i,j : Integer;
gambar : TBitmap;
begin
kata :='matrikfourier.txt';
assignfile(text,kata);
gambar := image3.Picture.Bitmap;
rewrite(text);
writeln(text,'============================== MATRIKS FOURIER ==========================');
memo1.Clear;
for j :=0 to gambar.Height-1 do
begin
temp := gambar.ScanLine[j];
i:=0;
repeat
write(text,inttostr(temp[i])+ ' - ');
i:=i+1;
until i > 3*gambar.Height-1;
end;
closefile(text);
memo3.Lines.LoadFromFile(kata);