Sabtu, 23 Oktober 2010

Menangkap Nilai Red, Green, dan Blue (RGB) Pada Image Dengan C++ Builder


Untuk menangkap nilai RGB dari image diperlukan fungsi macro yang sudah di include dalam VCL builder. Fungsinya adalah :

int GetRValue(TColor Clr);
int GetGValue(TColor Clr);
int GetBValue(TColor Clr);



Contoh Penggunaannya Dalam Sintak Adalah :

Pada Header


Pada Body


void __fastcall TFormRGB::ImageRGBMouseMove(
TObject *Sender,TShiftState Shift, int X, int Y)
{
PanelColor->Color = ImageRGB->Picture->Bitmap->
Canvas->Pixels[X][Y];

LabelR->Caption = "R : " +
IntToStr(GetRValue(ImageRGB->Picture->Bitmap->
Canvas->Pixels[X][Y]));

LabelG->Caption = "G : " +
IntToStr(GetGValue(ImageRGB->Picture->Bitmap->
Canvas->Pixels[X][Y]));

LabelB->Caption = "B : " +
IntToStr(GetBValue(ImageRGB->Picture->Bitmap->
Canvas->Pixels[X][Y]));
}
//---------------------------------------------------------------------------

Dengan fungsi macro tersebut bisa didapat nilai RGB yang dibutuhkan...
Enjoy Your Job...

Sabtu, 02 Oktober 2010

Sekilas Tentang Algoritma Semut ( AntNet Algorithm )

Algoritma Semut diadopsi dari perilaku koloni semut yang dikenal sebagai sistem semut (Dorigo, 1996). Secara alamiah koloni semut mampu menemukan rute terpendek dalam perjalanan dari sarang ke tempat-tempat sumber makanan. Koloni semut dapat menemukan rute terpendek antara sarang dan sumber makanan berdasarkan jejak kaki pada lintasan yang telah dilalui. Semakin banyak semut yang melalui suatu lintasan, maka akan semakin jelas bekas jejak kakinya. Hal ini akan menyebabkan lintasan yang dilalui semut dalam jumlah sedikit, semakin lama akan semakin berkurang kepadatan semut yang melewatinya, atau bahkan akan tidak dilewati sama sekali. Sebaliknya lintasan yang dilalui semut dalam jumlah banyak, semakin lama akan semakin bertambah kepadatan semut yang melewatinya, atau bahkan semua semut akan melalui lintasan tersebut.

Gambar berikut menujukkan perjalanan semut dalam menemukan jalur terpendek dari sarang ke sumber makanan.
 Perjalanan semut menemukan sumber makanan.

Gambar a di atas menunjukkan ada dua kelompok semut yang akan melakukan perjalanan. Satu kelompok bernama L yaitu kepompok yang berangkat dari arah kiri yang merupakan sarang semut dan kelompok lain yang bernama kelompok R yang berangkat dari kanan yang merupakan sumber makanan. Kedua kelompok semut dari titik berangkat sedang dalam posisi pengambilan keputusan jalan sebelah mana yang akan diambil. Kelompok semut L membagi dua kelompok lagi. Sebagian melalui jalan atas dan sebagian melalui jalan bawah. Hal ini juga berlaku pada kelompok semut R. Gambar b dan gambar c menunjukkan bahwa kelompok semut berjalan pada kecepatan yang sama dengan meninggalkan  feromon atau jejak kaki di jalan yang telah dilalui. Feromon yang ditinggalkan oleh kumpulan semut yang melalui jalan atas telah mengalami banyak penguapan karena semut yang melalui jalan atas berjumlah lebih sedikit dari pada jalan yang di bawah. Hal ini dikarenakan jarak yang ditempuh lebih panjang daripada jalan bawah. Sedangkan  feromon yang berada di jalan bawah, penguapannya cenderung lebih lama.  Karena semut yang melalui jalan bawah lebih banyak daripada semut yang melalui jalan atas. Gambar d menunjukkan bahwa semut-semut yang lain pada akhirnya memutuskan untuk melewati jalan bawah karena feromon yang ditinggalkan masih banyak. Sedangkan feromon pada jalan atas sudah banyak menguap sehingga semut-semut tidak memilih jalan atas tersebut. Semakin banyak semut yang melalui jalan bawah maka semakin banyak semut yang mengikutinya.   

Demikian juga dengan jalan atas, semakin sedikit semut yang melalui jalan atas, maka  feromon yang ditinggalkan semakin berkurang bahkan hilang. Dari sinilah kemudian terpilihlah jalur terpendek antara  sarang dan sumber makanan. Dalam algoritma semut, diperlukan beberapa variabel dan langkah-langkah untuk menentukan jalur terpendek, yaitu: 

Langkah 1 :  
a. Inisialisasi harga parameter-parameter algoritma. Parameter-parameter yang di inisialisasikan adalah :