Rabu, 20 Februari 2013

Pengolahan Citra menggunakan Delphi

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.







untuk listingnya pada button Open Picture ketiklah listing dibawah ini
    if not openpicturedialog1.Execute then exit else
    begin
        gambar := tbitmap.Create;
        gambar.LoadFromFile(openpicturedialog1.FileName);
        image1.Picture.Bitmap := gambar;
    end; 


untuk listing pada button matrik  listingnya seperti 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
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
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
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);


untuk lebih lengkapnya silahkan download program jadinya disini

1 komentar:

  1. Pak muhatir.. gimana caranya buat game pakai delphi

    BalasHapus