Fuzzy clustering merupaka salah satu metode yang digunakan untuk mengelompokan data menjadi beberapa kelompok (class), setiap data akan dimasukan kedalam kelas dan setiap kelas mempunyai kemiripan data antara data satu dengan data yang lainnya, sehingga tujuan dari clustering ini adalah mengelompokan data berdasarkan kemiripan data. Banyak sekali metode metode clustering selain fuzzy C-Mean. seperti SOM dan lain-lain.
Disini akan dikembangkan fuzzy clustering yang di implementasikan pada gambar, dimana pada gambar data-datanya yang akan dikelompokan adalah data pixel dari setiap titik di gambar tersebut, sedangkan attribut dari setiap pixel adalah RED,GREEN,BLUE. Sehingga pada kasus implementasi pada gambar, jumlah data yang akan diolah adalah (panjang x lebar), dengan attrribut 3 (jika menggunajan citra RGB) atau dengan attribute 1 (jika menggunajan warna grayscale).
sekarang mari kita buat programnya..... seperti biasa. siapkan project baru, klik file pilih new project pada IDE visual studio. pada kotak project name isi nama project sesuai dengan keinginan, misalnya disini kita isi dengan (Program Fuzzy C-MEan), untuk langkah-langkah selanjutnya silahkan ikuti instruksi dibawah ini, sedangkan untuk lebih memahami tentang fuzzy C-Mean Clustering silahkan download materi satu disini, materi dua disini, materi tiga disini, materi empat disini
langkah 1 : tambahkan dua komponen picturebox, satu openfileDialog, satu backroundWorker, satu loading bar, satu numeric updown, dan dua button, atur dan tata komponen-komponen tersebut seperti pada gambar berikut ini
sekarang mari kita buat programnya..... seperti biasa. siapkan project baru, klik file pilih new project pada IDE visual studio. pada kotak project name isi nama project sesuai dengan keinginan, misalnya disini kita isi dengan (Program Fuzzy C-MEan), untuk langkah-langkah selanjutnya silahkan ikuti instruksi dibawah ini, sedangkan untuk lebih memahami tentang fuzzy C-Mean Clustering silahkan download materi satu disini, materi dua disini, materi tiga disini, materi empat disini
Gambar1. Preview desain aplikasi
langkah 1 : tambahkan dua komponen picturebox, satu openfileDialog, satu backroundWorker, satu loading bar, satu numeric updown, dan dua button, atur dan tata komponen-komponen tersebut seperti pada gambar berikut ini
Gambar2. Hasil running program
Langkah kedua : pada button satu yang telah diberi label open Image tambahkan code berikut ini
if (DialogResult.OK == openFileDialog1.ShowDialog())
{
myGambar = new Bitmap(openFileDialog1.FileName);
pictureBox1.Height = myGambar.Height;
pictureBox1.Width = myGambar.Width;
pictureBox1.Image = myGambar;
pictureBox2.Height = myGambar.Height;
pictureBox2.Width = myGambar.Width;
dataPixel = new int[((myGambar.Height) * (myGambar.Width)), 3];
pixelBaru = new double[myGambar.Height * myGambar.Width, 3];
dataCenter=new double[cluster,3];
miu = new double[(myGambar.Height * myGambar.Width), cluster];
miuUpdate = new double[(myGambar.Height * myGambar.Width), cluster];
//random miu;
random();
getDataPixel();
}
{
myGambar = new Bitmap(openFileDialog1.FileName);
pictureBox1.Height = myGambar.Height;
pictureBox1.Width = myGambar.Width;
pictureBox1.Image = myGambar;
pictureBox2.Height = myGambar.Height;
pictureBox2.Width = myGambar.Width;
dataPixel = new int[((myGambar.Height) * (myGambar.Width)), 3];
pixelBaru = new double[myGambar.Height * myGambar.Width, 3];
dataCenter=new double[cluster,3];
miu = new double[(myGambar.Height * myGambar.Width), cluster];
miuUpdate = new double[(myGambar.Height * myGambar.Width), cluster];
//random miu;
random();
getDataPixel();
}
langkah ketiga : pada buttton tiga tambahkan code berikut ini
progressBar1.Maximum = Convert.ToInt16(numericUpDown1.Value);
backgroundWorker1.RunWorkerAsync();
Langkah keemapat : Tambahkan beberapa fucntion yang akan digunakan dalam fuzzy C-Means, diantaranya adalah, function drawImage(), function random(), function getDataPixel(), function rekonstruksiImage(), function getDataCenterCluster(),
berikut ini source codenya
untuk function drawImage()
private void drawImage()
{
double max = 0;
int indekMax = 0;
int j = 0;
for (int i = 0; i < myGambar.Height * myGambar.Width; i++)
{
for (j = 0; j < cluster; j++)
{
if (miu[i, j] > max)
{
max = miu[i, j];
indekMax = j;
}
}
pixelBaru[i, 0] = dataCenter[indekMax, 0];
pixelBaru[i, 1] = dataCenter[indekMax, 1];
pixelBaru[i, 2] = dataCenter[indekMax, 2];
max = 0;
indekMax = 0;
}
rekontruksiImage();
}
{
double max = 0;
int indekMax = 0;
int j = 0;
for (int i = 0; i < myGambar.Height * myGambar.Width; i++)
{
for (j = 0; j < cluster; j++)
{
if (miu[i, j] > max)
{
max = miu[i, j];
indekMax = j;
}
}
pixelBaru[i, 0] = dataCenter[indekMax, 0];
pixelBaru[i, 1] = dataCenter[indekMax, 1];
pixelBaru[i, 2] = dataCenter[indekMax, 2];
max = 0;
indekMax = 0;
}
rekontruksiImage();
}
berikut ini untuk fucntion random
function random()
double[] temp=new double[5];
for (int j = 0; j < (myGambar.Height*myGambar.Width); j++)
{
temp=bismilah(cluster);
miu[j,0] = temp[0];
miu[j, 1] = temp[1];
miu[j, 2] = temp[2];
miu[j, 3] = temp[3];
miu[j, 4] = temp[4];
}
for (int j = 0; j < (myGambar.Height*myGambar.Width); j++)
{
temp=bismilah(cluster);
miu[j,0] = temp[0];
miu[j, 1] = temp[1];
miu[j, 2] = temp[2];
miu[j, 3] = temp[3];
miu[j, 4] = temp[4];
}
function getDataPixel()
int indek = 0;
for (int i = 0; i < myGambar.Height; i++)
{
for (int j = 0; j < myGambar.Width; j++)
{
dataPixel[indek, 0] = myGambar.GetPixel(j,i).R;
dataPixel[indek, 1] = myGambar.GetPixel(j, i).G;
dataPixel[indek, 2] = myGambar.GetPixel(j,i).B;
indek = indek + 1;
}
}
for (int i = 0; i < myGambar.Height; i++)
{
for (int j = 0; j < myGambar.Width; j++)
{
dataPixel[indek, 0] = myGambar.GetPixel(j,i).R;
dataPixel[indek, 1] = myGambar.GetPixel(j, i).G;
dataPixel[indek, 2] = myGambar.GetPixel(j,i).B;
indek = indek + 1;
}
}
Source code untuk getDataCenter
function getDataCenter()
private double[] getDataCenterCluster(int dimensi)
{
int panjangData=myGambar.Height*myGambar.Width;
double[] miuInput=new double[panjangData];
double[] hasil = new double[3];
double jumMiuKuadrat = 0;
double jumMiuAttribute1 = 0;
double jumMiuAttribute2 = 0;
double jumMiuAttribute3 = 0;
for (int j = 0; j < cluster; j++)
{
if (dimensi == j)
{
for (int i = 0; i < panjangData; i++)
{
miuInput[i] = miu[i, j];
}
break;
}
}
{
int panjangData=myGambar.Height*myGambar.Width;
double[] miuInput=new double[panjangData];
double[] hasil = new double[3];
double jumMiuKuadrat = 0;
double jumMiuAttribute1 = 0;
double jumMiuAttribute2 = 0;
double jumMiuAttribute3 = 0;
for (int j = 0; j < cluster; j++)
{
if (dimensi == j)
{
for (int i = 0; i < panjangData; i++)
{
miuInput[i] = miu[i, j];
}
break;
}
}
function rekonstruksiImage()
private void rekontruksiImage()
{
{
gambarHasil = new Bitmap(myGambar.Width,myGambar.Height);
int indek = 0;
for (int i = 0; i < myGambar.Height; i++)
{
for (int j = 0; j < myGambar.Width; j++)
{
gambarHasil.SetPixel(j, i, Color.FromArgb(Convert.ToInt16(pixelBaru[indek, 0]), Convert.ToInt16(pixelBaru[indek, 1]), Convert.ToInt16(pixelBaru[indek, 2])));
indek = indek + 1;
}
}
pictureBox2.Image = gambarHasil;
} int indek = 0;
for (int i = 0; i < myGambar.Height; i++)
{
for (int j = 0; j < myGambar.Width; j++)
{
gambarHasil.SetPixel(j, i, Color.FromArgb(Convert.ToInt16(pixelBaru[indek, 0]), Convert.ToInt16(pixelBaru[indek, 1]), Convert.ToInt16(pixelBaru[indek, 2])));
indek = indek + 1;
}
}
pictureBox2.Image = gambarHasil;
langkah terkahir : Done... program selesai dibuat..... jika langkah langkah diatas dilakukan dengan benar, program mampu mengklasifikasikan pixel image dari suatu citra berdasarkan kemiripan data, sehingga data-data pixel yang mempunyai kemiripan nilai pixel akan diberi warna rata-rata dari kelas itu sendiri. perhatikan hasil running dibawah ini
Gambar 3. Preview hasil program yang telah dirunning
downlaod full project disini disini.
for more information contact on informasi@csharp-indonesia.com
untuk cara download, klik link download yang disediaan diatas, setelah itu akan muncul halaman adf.ly, tunggu beberapa detik sampai pada pojok kanan atas muncul tulisan skip ad. klik skip ad setelah itu silahkan klik pada button download yang muncul pada halaman ziddu
NB : Dalam tutorial ini program ditulisa menggunakan IDE Visual studio 2010. dengan target framework 2.0 . Sehingga minimal komputer harus terinstal windows xp untuk bisa menjalankan program *.exe nya, Sedangkan untuk membuka projectnya mau tidak mau harus menginstal microsoft visual studio 2010
maksud dari iterasi itu apa??
BalasHapussama apa fungsi dimensi pada menu cek
Sebelumnya maaf ya.. reply nya agak terlambat
BalasHapusIterasi itu samadengan looping dan sama juga pula dengan perulangan,
ada masalah mengenai hierarchical clustering ga? soalnya tugas akhir saya mengenai itu. saya ada mengirim e-mail ke informasi@csharp-indonesia.com kenapa ga bisa ya?
BalasHapusuntuk email informasi@csharp-indonesia memang agak bermasalah. sering terjadi hang up. untuk hierarchieal clustering. saya pernah mempelajarinya. tapi tidak sampai mengimplementasikannya kedalam sebuah program.
BalasHapusada referensi untuk itu tidak? trims..
BalasHapusuntuk referensi yang saya gunakan dulu adalah jurnal dari IEEE, untuk buku saya kurang begitu tahu yang membahas tentang hierarchiel clustering
BalasHapusada contoh untuk masalah dengan algoritma apriori ga ?? terimakasih
BalasHapusfungsi dimensinya pada menu cek apa om?
BalasHapuschenlina20150916
BalasHapusgucci outlet
football shoes
tods outlet
abercrombie and fitch
ray ban sunglasses
kate spade handbags
soccer shoes
air max
adidas shoes
nike blazer
timberland boots
longchamp pas cher
mizuno running shoes
giuseppe zanotti sneakers
vans shoes
ray bans
cheap oakleys
fake oakleys
juicy couture
louis vuitton pas cher
canada goose uk
longchamp handbags
nike roshe runs
true religion jeans
ghd hair straighteners
nike huarache trainers
nike roshe run
p90x workouts
air max 95
rolex watches
nike trainers
barbour uk
nike store uk
polo outlet
nike tn
ralph lauren polos shirts
rolex replica watches
adidas original trainers
ugg sale
ugg boots
as
2015-11-24 xiaozhengm
BalasHapussac longchamp pliage
longchamp handbags
jordan 13
coach outlet
pandora jewelry
coach factory outlet
nike uk
michael kors outlet
coach outlet
oakley sunglasses
ugg boots
christian louboutin outlet
jordan 6
sac longchamp pas cher
nike air max
oakley sunglasses
michael kors outlet online
michael kors handbags
michael kors outlet online
coach outlet
coach outlet
gucci outlet
coach outlet
ghd straighteners
canada gooses outlet
barbour uk
mizuno running shoes
tory burch outlet
ray ban
christian louboutin outlet
michael kors outlet
michael kors
michael kors
nike tn
running shoes
adidas outlet store
christian louboutin
cheap oakley sunglasses
christian louboutin uk
gucci outlet
levis 511
BalasHapuspuma outlet
kate spade outlet online
jordans
michael kors handbags
coach outlet online
nike cortez shoes
louis vuitton handbags
toms outlet
ugg boots
burberry sale
cheap oakley sunglasses outlet
cheap ray ban sunglasses
louis vuitton purse
michael kors outlet
coach factory outlet online
hollister uk
lacoste polo shirts
oakley sunglasses outlet
polo ralph lauren outlet online
nike trainers
michael kors bags
white converse
adidas superstars
ed hardy uk
oakley sunglasses,oakley sunglass,cheap oakley sunglasses,oakley sunglasses cheap,oakley sunglasses outlet,oakley store,oakley outlet,oakley outlet store,oakley sunglasses sale,oakley sunglasses discount
yeezy boost 350 balck
mizuno running shoes
polo ralph lauren
nba jerseys wholesale
longchamp uk
ghd hair dryer
kate spade handbags
gucci outlet online
converse sale
yeezy boost 350 white
coach outlet online
toms outlet
chenzhen20160510
ray ban sunglasses
BalasHapusugg sale
coach outlet
beats headphones wireless
nike tn pas cher
jordan shoes
tory burch outlet
ralph lauren uk
coach outlet
michael kors outlet
coach factory outlet
michael kors canada
nike outlet store
moncler jackets
michael kors handbags
adidas superstar
hermes birkin bag
coach outlet store online clearances
canada goose jackets
designer handbags
michael kors handbags
jordan 3 infrared
ugg canada
coach factory outlet
pittsburgh steelers jerseys
kevin durant shoes
juicy couture
cheap cartier watches
ghd flat iron
jordan 4 toro
coach factory outlet
cheap oakley sunglasses
hollister outlet
cheap nfl jerseys
tods shoes
oklahoma city thunder jerseys
coach outlet store online clearances
new england patriots jerseys
louis vuitton outlet
ugg boots sale
20168.15wengdongdong
bears jerseys
BalasHapusdolce and gabbana shoes
michael kors uk
nike blazer pas cher
detroit lions jerseys
bills jerseys
michael kors handbags outlet
cardinals jersey
michael kors handbags wholesale
adidas nmd r1
under armour shoes
BalasHapuscowboys jerseys
toms outlet
coach outlet store
air jordan uk
saints jerseys
cheap nfl jerseys
michael kors outlet
ray ban sunglasses
michael kors handbags
new york knicks jersey
BalasHapusyeezy boost 350 black
gucci sale
fitflops
ecco
salomon boots
detroit lions jerseys
san diego chargers jerseys
nike roshe run
ecco shoes
link mati
BalasHapusmaaf boss, ini gambar tidak ada, file ny juga tidak ada
BalasHapusWe find lots of learning after reading this very useful article .
BalasHapuscurry 6
BalasHapusnike air max 90
yeezy boost 350
supreme new york
nike x off white
nike huarache
louboutin
vans
jordan shoes
nike air max 270