Rabu, 08 Juli 2009

Laporan Resmi Praktikum 5

Analisa :

1. Latihan 1
































Source code untuk brightness :








Nilai warna pada setiap pixel akan diambil rata-rata red, green dan bluenya kemudian nilai rata-rata itu akan ditambahkan dengan nilai brightness yang didapat dari textbox, nilai warna akan dibatasi dari 0 sampai dengan 255,kemudian semua titik akan diberikan nilai warna baru tersebut 2. Latihan 2




































Source code untuk contrass :







Sama dengan proses brightness pada gambar RGB tetapi nilai k tidak ditambahkan dengan rata-rata nilai red, green bluenya melainkan dikalikan

3. Latihan 3









Source code untuk autolevel :













Auto level akan mengatur brightness dan contrass gambar secara otomatis, dengan cara mencari nilai terbesar dan terkecil rata-rata red green blue tiap-tiap pixel, setelah itu akan dicari jarak antara nilai terkcil dan terbesar yang akan dijadikan sebagai nilai untuk memperbaiki citra, dalam hal ini citra akan diubah ke format grayscale

Kesimpulan :
1. Brightness adalah proses penambahan kecerahan dari nilai derajat keabuan. Proses brightness ini dilakukan dengan menambahkan nilai derajat keabuan dengan suatu nilai penambah.
2. Mengubah kontras dari suatu citra adalah proses pengaturan nilai range interval pada setiap nilai derajat keabuan

Laporan Resmi Praktikum 4

Analisa :

1. Latihan 1
- Pada pengubahan sebuah gambar menjadi grayscale dapat dilakukan dengan cara mengambil semua pixel pada gambar kemudian warna tiap pixel akan diambil informasi mengenai 3 warna dasar yaitu merah, biru dan hijau (melalui fungsi warnatoRGB), ketiga warna dasar ini akan dijumlahkan kemudian dibagi tiga sehingga didapat nilai rata-rata. Nilai rata-rata inilah yang akan dipakai untuk memberikan warna pada pixel gambar sehingga warna menjadi grayscale, tiga warna dasar dari sebuah pixel akan diset menjadi nilai rata-rata (melalui fungsi RGBtowarna)
- Proses dari rumus keduanya hampir sama, bedanya pada rumus pertama warna pada setiap pixel yang telah dirata-rata akan dikalikan dengan nilai derajat keabuan (th), sehingga terjadi pengelompokan warna menjadi beberapa kelompok sesuai dengan nilai kuantisasinya.

2. Latihan 2
a. Untuk rumus x = 0.2r + 0.2g + 0.5b




b. Untuk rumus x = 0.5r + 0.5g + 0

c. Untuk rumus x = 0.5r + 0g + 0.5b

Gambar yang paling terang diperoleh pada saat menggunakan rumus ke-2 (x = 0.5r + 0.5g + 0b). Sedangkan gambar paling tidak terang diperoleh saat menggunakan rumus ke-1 (x = 0.2r + 0.2g + 0.5b).

3. Latihan 3
- Thresholding digunakan untuk mengatur jumlah derajat keabuan yang ada pada citra. Dengan menggunakan thresholding maka derajat keabuan bisa diubah sesuai keinginan, misalkan diinginkan menggunakan derajat keabuan 16, maka tinggal membagi nilai derajat keabuan dengan 16. Proses thresholding ini pada dasarnya adalah proses pengubahan kuantisasi pada citra, sehingga untuk melakukan thresholding dengan derajat keabuan dapat digunakan rumus:

dimana :
w adalah nilai derajat keabuan sebelum thresholding
x adalah nilai derajat keabuan setelah thresholding

- Hubungan thresholding dengan kuantisasi citra yaitu kuantisasi citra dapat diperoleh berdasarkan derajat keabuan yang dimasukkan dalam rumus thresholding.

4. Latihan 4
Gambar dengan thresholding 2
Gambar hasil konversi citra ke citra biner

Ternyata gambar yang dihasilkan dengan nilai thresholding 2 dan gambar hasil konversi citra ke citra biner tidak sama. Untuk gambar yang pertama digunakan metode thresholding dengan nilai derajad keabuan sebesar 2.

Kesimpulan :

1. Pada proses thresholding, kuantisasi citra yang bervariasi dapat diperoleh dengan mengubah nilai derajat keabuan pada rumus thresholding.
2. Proses kuantisasi hampir sama dengan grayscale, bedanya warna pada setiap pixel yang telah dirata-rata akan dikalikan dengan nilai derajat keabuan (th), sehingga terjadi pengelompokan warna mejadi beberapa kelompok sesuai dengan nilai kuantisasinya

Tugas 4

Source codex :
bool CxImage::Jitter(long radius)
{
// check if the image is valid, this should be always the first line in
// the function
if (!pDib) return false;

// local variables
long nx,ny;

// temporary image to store the partial results of the algorithm
CxImage tmp(*this,pSelection!=0,true,true);

// limit the effects of the functions only in the smallest rectangle that
// holds the selected region (defined with the Selection...() functions ),
// this will speed up the loops.
long xmin,xmax,ymin,ymax;
if (pSelection){
xmin = info.rSelectionBox.left; xmax = info.rSelectionBox.right;
ymin = info.rSelectionBox.bottom; ymax = info.rSelectionBox.top;
} else {
xmin = ymin = 0;
xmax = head.biWidth; ymax=head.biHeight;
}

// main loop : scan the image in vertical direction
for(long y=ymin; y

// monitor the progress of the loops
info.nProgress = (long)(100*y/head.biHeight);

// let the application a way to exit quickly
if (info.nEscape) break;

// main loop : scan the image in horizontal direction
for(long x=xmin; x

// if the feature is enabled, process only the pixels inside the
// selected region
#if CXIMAGE_SUPPORT_SELECTION
if (SelectionIsInside(x,y))
#endif //CXIMAGE_SUPPORT_SELECTION
{
// main algorithm
nx=x+(long)((rand()/(float)RAND_MAX - 0.5)*(radius*2));
ny=y+(long)((rand()/(float)RAND_MAX - 0.5)*(radius*2));
if (!IsInside(nx,ny)) {
nx=x;
ny=y;
}

// save the result in the temporary image.
// if you can, use PixelColor only for 24 bpp images,
// and PixelIndex for 8, 4 and 1 bpp images : it's faster
if (head.biClrUsed==0){
tmp.SetPixelColor(x,y,GetPixelColor(nx,ny));
} else {
tmp.SetPixelIndex(x,y,GetPixelIndex(nx,ny));
}

// if the feature is enabled, process also the pixels
// in the alpha layer
#if CXIMAGE_SUPPORT_ALPHA
tmp.AlphaSet(x,y,AlphaGet(nx,ny));
#endif //CXIMAGE_SUPPORT_ALPHA

}
}

}

// save the result and exit
Transfer(tmp);
return tru
e;
}














Tugas 5 Program Untuk Mengenali Angka dari 0 sampai 9, Menggunakan Metode histogram proyeksi.





Dari gambar tersebut untuk nilai yang dimasukkan masih belum ada, nantinya auto level akan mengatur brightness dan contrass gambar secara otomatis, dengan cara mencari nilai terbesar dan terkecil rata-rata red green blue tiap-tiap pixel, setelah itu akan dicari jarak antara nilai terkceil dan terbesar yang akan dijadikan sebagai nilai untuk memperbaiki citra, dalam hal ini citra akan diubah ke format grayscale.
setelah itu nantinya akan dimasukkan nilai, dan akan dilihat perbedaan antara nilai yang belum dimasukkan dengan yang sudah dimasukkan. untuk nilai masukkan 45 gambar yang terlihat lebih terang dibandingkan dengan nilai dengan masukkan 150. Semakin besar nilai yang dimasukkan maka gambar yang dihasilkan tidak terlihat begitu jelas atau semakin buram.

Selasa, 07 Juli 2009

Tugas 6 program metode thinning dan skletonizing.

Berikut akan kita tampilkan cuplikan program untuk mengaplikasikan metode thinning dan skeletonizing

// searching for vertical linesshort[,] vse = new short[3, 3] {{ 0, 1, 0 },{ 0, 1, 0 },{ 0, 1, 0 }};AForge.Imaging.Filters.HitAndMiss vFilter =new AForge.Imaging.Filters.HitAndMiss( vse );System.Drawing.Bitmap vImage = vFilter.Apply( image );// searching for horizontal linesshort[,] hse = new short[3, 3] {{ 0, 0, 0 },{ 1, 1, 1 },{ 0, 0, 0 }};AForge.Imaging.Filters.HitAndMiss hFilter =new AForge.Imaging.Filters.HitAndMiss( hse );System.Drawing.Bitmap hImage = hFilter.Apply( image );source code 2// create filter sequenceAForge.Imaging.Filters.FiltersSequence filterSequence = new AForge.Imaging.Filters.FiltersSequence();// add 8 thinning filters with different structuring elementsfilterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{0, 0, 0}, {-1, 1, -1}, {1, 1, 1}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{-1, 0, 0}, {1, 1, 0}, {-1, 1, -1}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{1, -1, 0}, {1, 1, 0}, {1, -1, 0}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{-1, 1, -1}, {1, 1, 0}, {-1, 0, 0}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{1, 1, 1}, {-1, 1, -1}, {0, 0, 0}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{-1, 1, -1}, {0, 1, 1}, {0, 0, -1}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{0, -1, 1}, {0, 1, 1}, {0, -1, 1}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{0, 0, -1}, {0, 1, 1}, {-1, 1, -1}}, HitAndMissMode.Thinning ));// create filter iterator for 10 iterationsAForge.Imaging.Filters.FilterIterator filter =new AForge.Imaging.Filters.FilterIterator(filterSequence, 10);

Tugas 7. Image Retrieval


Ada dua cara yang dapat dilakukan dalam pengambilan kembali suatu image atau image retrieval
a. context-based adalah pengambilan data dengan merujuk pada kandungan semantik berkaitan dengan image, biasanya berhubungan dengan deskripsi image misalnya keyword dari image.
b. content-based adalah pengambilan data dengan merujuk pada fitur image seperti warna, tekstur, bentuk, atau kombinasi atau yang biasa desebut dengan Content Based Image Retrieval (CBIR).
Pada perkembangannya teknik context based menjadi tidak praktis dikarenakan adanya ukuran basis data yang besar dan penilaian subjektif dalam mengartikan image dengan text. Untuk menghindari teknik ini, maka digunakan pendekatan lain dalam image retrieval yaitu content based.CBIR adalah salah satu metodologi untuk pemanggilan kembali data image berdasarkan content sebuah image. Teknik CBIR yang banyak digunakan adalah teknik warna, teknik tekstur, dan teknik bentuk. Pada sistem CBIR, content visual dari image akan diekstraksi dan diuraikan menggunakan metode pengekstrakan ciri. Untuk mendapatkan kembali image, user menginputkan query image. Kemudian sistem akan mengekstrak image tersebut sehingga menghasilkan fitur ciri image. Fitur ciri image query dan image dalam database akan dicari similaritynya. Image yang memiliki nilai similarity yang paling tinggi akan muncul diurutan teratas. Gambar dibawah ini memperlihatkan bentuk umum sistem CBIR. Pada image tersebut terdapat dua jalur utama yaitu query dan database. Pada kedua lajur tersebut terdapat visual content description yang akan digunakan untuk proses similarity comparison, indexing dan retrieval.

Senin, 06 Juli 2009

tugas 7 pengenalan angka dan huruf



Secara umum dan sederhana, citra dapatdidefinisikan sebagai representasi visual dari suatu objek. Lebih jauh citra juga dapat diartikan sebagai gambaran yang representatif mengenai suatu objek sedemikian sehingga citra tersebut dapat memberikan kesan yang mendalam mengenai objek yang dimaksud. Jika ingin mendefinisikannya lebih bebas lagi, citra dapat didefinisikan sebagai bentuk visual yang dapat diterima secara baik oleh indera penglihatan, apapun bentuknya. Dalam bidang komputer, citra atau disebut juga image merupakan representasi visual dari suatu objek setelah mengalami berbagai transformasi data dari berbagai bentuk rangkaian numerik.

Untuk mendapatkan data yang akurat dan konsisten dari setiap sampel, digunakan suatu metode sederhana yaitu dengan cara menghitung jumlah pixel aktif yang terdapat pada bagian-bagian dari sampel. Adapun algoritma umum dari pengekstrakan data numerik dari setiap sampel adalah sebagai berikut :
1. Setiap sampel yang diamati, dibagi menjadi beberapa area, misalnya 4 kolom dan 5 baris,sehingga akan terdapat 20 area pengamatan; 2. jumlah pixel yang aktif dari setiap area yang ada dihitung secara akurat;
3. dihasilkan sejumlah 20 data numerik dengan atribut kolom dan baris yang diharapkan dapat mewakili data ciri dari sampel yang diamati. Setelah melalui tahapan normalisasi, data-data numerik tadi akan menjadi data input pada JSB. Dengan demikian jumlah area yang ada pada setiap sampel akan bersesuaian dengan jumlah neuron input JSB yang akan digunakan. Agar dapat dihasilkan kumpulan data yang seragam, maka setiap sampel yang akan diamati haruslah memiliki jumlah area pembagian yang sama.

Tugas 7. Deteksi Warna Kulit

A. Deteksi Warna Kulit
Kulit dapat digunakan sebagai sumber informasi untuk
proses pendeteksian. Informasi yang diperoleh dari kulit
sangat relevan untuk proses pendeteksian antara lain
untuk proses-proses pendeteksian manusia, pendeteksian
wajah dan penjejakan wajah (face tracking), penjejakan
tangan yang meliputi pengenalan posisi tangan dan
gerakannya (gesture), pengontrolan robot dan aktivitas
interaksi manusia-komputer lainnya. Selain itu
keberadaan kulit dapat dijadikan informasi dasar untuk
proses penyaringan konten yang bersifat pornografis
pada internet serta berbagai aplikasi video (Vezhnevets,
2003).
Keuntungan yang dapat diperoleh jika kulit
dijadikan sebagai sumber awal informasi untuk prosesproses
yang disebutkan di atas antara lain adalah
memungkinkannya pemrosesan yang cepat dan
langsung, tahan (robust) terhadap variasi geometris daripola-pola/tekstur kulit, tahan terhadap halangan parsial
(partial occlusion), tahan terhadap perubahan resolusi
citra dan mengurangi kebergantungan pada penggunaan
peralatan penjejakan yang khusus. Selain itu karena kulit
memiliki karakteristik warna, maka hal ini memberikan
kemudahan lain karena warna adalah salah satu aspek
yang dengan cepat dan mudah dapat dikenali oleh
manusia.
Pada makalah ini akan disajikan paparan teknik-teknik
pemodelan matematika warna kulit dan modelmodel
warna yang dapat digunakan untuk pendeteksian
warna kulit. Eksperimen pendeteksian warna kulit
dilakukan pada ruang warna RGB menggunakan dua
model non-parametrik serta tiga kelompok basidata
wajah.
Warna merupakan karakteristik umum yang
mudah dikenali dan dimanfaatkan oleh manusia.
Karakteristik ini juga dapat dimanfaatkan oleh komputer
untuk proses yang sama. Warna direpresentasikan dalam
berbagai model warna yang telah dikembangkan,
diantaranya adalah RGB, Normalized RGB, HIS, HSV,
HSL, Fleck HSV, TSL, YCbCr, CIELAB, CIELUV,
YES, YUV, YIQ, dan CIE-xyz. Walaupun belum ada
model warna ideal yang mewakili secara sempurna
kemampuan manusia namun Sampai saat ini belum ada
model warna yang ideal, yang memiliki kemampuan dan
kesensitivitasan seperti sistem visual manusia yang pada
dasarnya sangat subyektif, perseptif dan variatif.
Beberapa model warna yang mendekati ideal adalah
model warna CIELAB dan CIELUV, dimana model
warna ini dikatakan sebagai perceptually uniform color
spaces. Untuk dapat menggunakan model warna ini ada
‘harga’ yang harus dibayar yaitu fungsi transformasi
yang kompleks sehingga membutuhkan sumber daya
komputasi yang lebih besar dibandingkan dengan ruang
warna yang lain. Penelitian yang dilakukan akan
menggunakan model warna yang walaupun tidak seideal
model warna CIELAB atau CIELUV, tetapi
memiliki kemampuan yang mendekati ideal dan
membutuhkan sumber daya komputasi yang memadai
yaitu warna RGB, Normalized RGB, HSV dan YCbCr.
Ruang warna RGB merupakan ruang warna
yang umum dan biasa digunakan untuk
merepresentasikan citra dijital. Ruang warna RGB
merupakan ruang warna yang bersifat additive dan
berkembang seiring dengan perkembangan peralatan
display CRT. Pada model warna RGB, warna diwakili
oleh komponen merah (Red), hijau (Green) dan biru
(Blue). Nilai setiap komponen diwakili oleh bilangan
bulat dengan interval 0 sampai dengan 255. Kombinasi
numeris dari elemen RGB akan menghasilkan lebih dari
16 juta warna.
Warna sebanyak ini tidak semuanya dapat ditangkap oleh sistem visi biologis manusia. Pada
Gambar 1 disajikan contoh tentang pemetaan 49 warna
ke dalam ruang warna RGB.

Dari Gambar 1 terlihat bahwa pemetaan warna
pada model warna RGB membutuhkan representasi tiga
dimensi dimana hal ini secara umum akan meningkatkan
kebutuhan sumber daya komputasi untuk
pemrosesannya. Untuk itu dikembangkan model warna
Normalized RGB. Pada model warna ini nilai R, G, dan
B dinormalkan dengan formula.
Dari formula dapat disimpulkan bahwa
pemodelan dapat direduksi
menjadi pemodelan 2 dimensi dimana nilai b dapat
digantikan dengan formulasi.

METODE
Metode pemodelan distribusi warna kulit
dikelompokkan menjadi empat yaitu:
metode pendefinisian region kulit secara eksplist, pemodelan secara non-parametrik pemodelan parametrik dan pemodelan distribusi warna kulit secara dinamis (Hadiet.al., 2005).
Pada makalah ini hanya dibahas pemodelan secara parametrik dan non-parametrik. Pada pemodelan
secara non-parametrik, distribusi warna kulit
diperkirakan dari data pelatihan (training data) tanpa
secara eksplisit menurunkan model warna kulit. Teknikteknik
yang termasuk pada kelompok ini adalah teknik
Look Up Table atau Model Histogram dan teknik
klasifikasi dengan Bayesian Reasoning. Pemodelan
secara parametrik adalah sebuah pemodelan dimana dari
sekumpulan data pelatihan akan diturunkan sebuah
model parametrik yang menerima masukan (input) nilai parameter tertentu. Teknik yang termasuk dalam kelompok ini antara lain adalah teknik Gaussian.

HASIL DAN PEMBAHASAN
Seperti dijelaskan di atas pendeteksian kulit
berdasarkan warna kulit merupakan langkah awal untuk
proses pengenalan wajah. Proses pendeteksian dilakukan
dengan mengacu kepada model kulit yang dibuat seperti
dijelaskan sebelumnya. Secara umum teknik
pendeteksian kulit dapat dikelompokkan menjadi dua
yaitu (i) Berbasiskan Piksel dan (ii) Berbasiskan Region.
Teknik berbasiskan piksel mengklasifikasikan setiap
piksel berdasarkan dua kelas yaitu kulit dan bukan kulit
tanpa bergantung pada piksel-piksel disekitarnya. Teknik
kedua melihat pengaturan spasial dan piksel-piksel
wajah sebagai elemen pendukung untuk meningkatkan
kinerja pendeteksian. Pada metode ini diperlukan
pengetahuan tambahan, misalnya tentang tekstur wajah.