Senin, 06 Juli 2009

Laporan Resmi Praktikum 7

Analisa :

1. Tugas 1

a. Histogram citra gray scale : grafik yang menggambarkan hubungan antara suatu nilai dan banyaknya nilai itu muncul pada sebuah data

b. Kumulatif histogram citra gray scale : banyaknya kemunculan suatu nilai pada sebuah data

c. Histogram equalisasi citra gray scale : suatu proses perataan histogram, dimana distribusi nilai derajat keabuan pada suatu citra dibuat rata

2. Tugas 2


Citra yang dihasilkan menggunakan metode penambahan contrass menjadi lebih terang dari citra aslinya. Namun citra yang dihasilkan tidak teralu baik (terlalu terang).

3. Tugas 3

Citra yang dihasilkan menggunakan metode penambahan brightness menjadi lebih terang dari citra aslinya. Namun citra yang dihasilkan tidak terlalu baik (kabur)

4. Tugas 4



Hasil dari hequalization ternyata sesuai dengan yang terdapat pada teori yaitu naik secara linier. Hal tersebut dikarenakan Hequalization (perataan histogram) adalah suatu proses dimana histogram diratakan berdasarkan suatu fungsi linier (garis lurus)

5. Tugas 5

Citra yang didapatkan melalui proses perbaikan citra (enhancement) menggunakan histogram equalisasi ternyata memang lebih baik (jelas) dibandingkan dengan citra aslinya.

Kesimpulan :

1. Metode histogram equalisasi (perataan citra) memang baik digunakan untuk proses enhancement. Citra yang dihasilkan menjadi lebih baik (jelas)
2. Histogram equalization dilakukan dengan cara meratakan distribusi nilai derajat keabuan dari suatu citra.

Laporan Resmi Praktikum 6

Analisa :

1. Latihan 1

a. Transformasi citra negative

Inversi citra adalah proses negatif pada citra, dimana setiap nilai citra dibalik dengan acuan threshold yang diberikan. Gambar yang dihasilkan baru sedikit terlihat ketika slider dimaksimalkan. Untuk citra dengan derajat keabuan 256, proses inversi citra didefinisikan dengan: xn = 255 – x

b. Transformasi citra dengan fungsi LOG


Transformasi menggunakan fungsi LOG akan mempengaruhi contras dari suatu citra, citra yang ditransformasi menggunakan metode ini akan terlihat lebih terang.

c.Transformasi citra dengan fungsi inverse LOG

Transformasi menggunakan fungsi LOG akan mempengaruhi contras dari suatu citra, citra yang ditransformasi menggunakan metode ini akan terlihat lebih gelap.

d.Transformasi citra Nth power


Transformasi citra Nth power menghasilkan citra yang menyerupai grayscale.

e.Transformasi citra Nth root power


Transformasi citra Nth root power menghasilkan citra yang lebih contras menyerupai transformasi menggunakan fungsi LOG

2. Latihan 2


• Negative : Semakin besar input gray level yang diberikan maka semakin kecil nilai output gray level yang dihasilkan. Nilai output yang didapatkan linier.
• LOG : Mula-mula nilai output gray level yang didapatkan mengalami peningkatan yang cukup besar seiring bertambahnya nilai input. Namun saat mencapai nilai input tertentu, peningkatan nilai output menjadi menurun hingga mendekati kondisi steady.
• Inverse LOG : Mula-mula nilai gray level yang didapatkan mengalami peningkatan yang kecil seiring bertambahnya nilai output. Namun saat mencapai nilai input tertentu, nilai output mengalami peningkatan yang cukup besar hingga mendekati kondisi steady
• Nth power : Karakteristiknya hamper sama seperti inverse LOG, namun lebih mendekati linier.
• Nth power root : Karakteristiknya hamper sama seperti LOG, namun lebih mendekati linier

Kesimpulan :

1. Transformasi citra dapat dilakukan dengan berbagai cara, diantaranya dengan inverse (negative), proses logaritmik (LOG dan inverse LOG) , dan power law (Nth power dan Nth power root).
2. Untuk transformasi inverse diperlukan nilai maksimum yang didapatkan dari slider. Untuk transformasi LOG dan inverse LOG diperlukan nilai C yang diinputkan melalui text box. Sedangkan untuk transformasi power law dibutuhkan nilai C dan Y yang diinputkan melalui text box

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 3Source 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 + 0b

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

Laporan Resmi Praktikum 3

ANALISA

Hasil praktikum dapat dilihat pada gambar 1. Untuk mengambil gambar, kita tekan 'load gambar', dan untuk membalik gambar tersebut secara horizontal, kita tekan 'balik horizontal', sedangkan apabila kita ingin membalik gambar secara vertikal kita tinggal menekan 'balik vertikal'.






hal yang dilakukan pertama adalah mengambil semua pixel tiap baris dalam
gambar dengan perintah getPixel. Kemudian pixel-pixel yang didapat disimpan
dalam array yang nantinya akan diset (ditampilkan) dalam picture2, pada picture 2
baris pertama akan diisi oleh pixel-pixel dari baris terbawah dari gambar,
sehingga gambar akan terbalik yang atas menjadi bawah.
Program pada button 3 :






Kesimpulan :
1. Kita dapat membuat suatu aplikasi menggunakan visual C++ untuk keperluan membalik gambar baik secara vertikal maupun horizontal.
2. Aplikasi tersebut dibuat menggunakan dialog based
3. Untuk membuat gambar menjadi terbalik, kita masukkan program untuk merubah posisi pixel gambar tersebut

Tugas 7 (Aplikasi Pengolahan Citra)

BATAS CITRA LESI KANKER KULIT

Kanker kulit merupakan salah satu jenis kanker yang cukup serius. Walaupun, malignant melanoma (salah satu jenis kanker kulit yang fatal) bukan merupakan kanker yang banyak terjadi di Indonesia, tetapi kanker tersebut tumbuh lebih cepat dibandingkan jenis kanker yang lain [1]. Diagnosis dini terhadap kanker tersebut merupakan hal yang penting, karena kemungkinan untuk dapat disembuhkan pada tahap dini sangat besar.

Dermatoscopic adalah teknik pencitraan non-invasive dengan menggunakan minyak immersion, yang akan membuat permukaan kulit lebih transparan, sehingga memberikan visualisasi yang lebih baik bagi struktur-struktur permukaan kulit. Citra dermatoscopic memberikan gambaran yang lebih detail dibandingkan dengan citra macroscopic.

TAHAPAN PROSES.

Deteksi batas citra lesi kanker kulit merupakan tahapan awal dan sangat penting bagi suatu sistem penunjang diagnosis penyakit kulit berbantukan komputer. Akurasi diagnosis ditentukan oleh akurasi deteksi batas lesi kanker kulit tersebut. Deteksi batas citra lesi kanker kulit memiliki beberapa tahapan proses [6], yaitu : Akuisisi Citra (image acquisition), Pra Proses (preprocessing), Ekstraksi Fitur (feature extraction), Segmentasi (segmentation) dan Pasca Proses (postprocessing).

Image Acquisition

Akuisisi citra merupakan tahap awal, pada tahap ini citra lesi kanker kulit pada pasien akan diambil/ditangkap. Kamera akan dipergunakan untuk tahapan ini. Kamera yang umum dipergunakan pada tahap ini, dapat berupa kamera analog atau digital. Untuk citra yang diambil dengan menggunakan kamera analog perlu dilakukan konversi ke dalam bentuk citra digital.

Preprocessing

Beberapa citra dermatoscopic mengandung elemen-elemen seperti; tekstur kulit, gelembung udara dan rambut yang membuat deteksi batas lebih sulit. Untuk mengatasi permasalahan tersebut, perlu dilakukan proses pendahuluan dengan melakukan penghalusan. Proses penghalusan yang dipergunakan terdiri dari Dullrazor dan Filter.Penggunaan Dullrazor ditujukan untuk menghilangkan rambut yang terdapat pada citra warna lesi kulit, terutama rambut yang cukup tebal dan memiliki warna dasar yang menyerupai warna lesi kulit. Keberadaan rambut tersebut dapat mempengaruhi proses deteksi batas citra lesi kulit, oleh karena itu rambut pada citra lesi kulit harus dihilangkan.Pemilihan filter merupakan tahapan yang penting dalam deteksi tepi lesi kulit. Filter gaussian dan median merupakan filter paling sering dipergunakan [6]. Unjuk kerja yang kurang maksimal dari filter tersebut ditunjukkan dengan citra yang dihasilkan memiliki gambaran batas yang semakin kabur. Berdasarkan eksperimen yang telah dilakukan M. Emre Celebi, Alp. Aslandogan dan Paul M. Bergstresser [6], didapatkan hasil bahwa; Filter bilateral memberikan hasil yang terbaik disusul PGF.

Color Quantization

Citra 24 bit pada umumnya mengandung ribuan warna, sehingga menimbulkan kesulitan untuk menanganinya. Oleh sebab itu perlu dilakukan kuantisasi warna. Tujuan dari proses ini adalah memperoleh beberapa perwakilan warna yang dapat membedakan satu bagian dengan bagian lainnya pada citra tersebut. Dari beberapa eksperimen, jumlah perwakilan warna yang cukup baik berkisar sekitar 20 warna. Pada beberapa penelitian, sejumlah metode kuantisasi warna seperti, median-cut, k-mean, variance-based, octree, pairwise clustering, uniform dan popularity diperbandingkan.Diperoleh hasil bahwa pairwise clustering memberikan nilai RMS (total kesalahan kuantisasi berbanding jumlah piksel citra) terkecil, Sedangkan variance-based memberikan waktu proses yang tercepat.

Segmentation

Proses selanjutnya adalah melakukan segmentasi terhadap citra lesi kanker kulit. Pada proses ini, citra akan dibagi menjadi beberapa bagian. Metode segmentasi region growing akan dipergunakan pada tahap ini. Region growing terdiri atas proses penentuan piksel yang akan menjadi titik awal dan akan berkembang dimulai dari titik awal tersebut. Region growing akan diikuti proses region merging.

Postprocessing

Citra lesi kulit yang sudah tersegmentasi seringkali masih mengandung bagian kulit sehat. Pendekatan segmentasi X.lu [16] diterapkan untuk menghilangkan sisa bagian kulit yang sehat. Pada pendekatan tersebut akan dibentuk jendela dengan ukuran 10x10 pada keempat sudut citra dan menentukan nilai rata-ratanya. Bagian citra yang memiliki jarak warna yang lebih kecil daripada threshold warna kulit sehat akan dihilangkan [16].

Tugas 6

// searching for vertical lines

short[,] 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 lines

short[,] 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 sequence
AForge.Imaging.Filters.FiltersSequence filterSequence =
new AForge.Imaging.Filters.FiltersSequence();
// add 8 thinning filters with different structuring elements
filterSequence.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 iterations
AForge.Imaging.Filters.FilterIterator filter =
new AForge.Imaging.Filters.FilterIterator(filterSequence, 10);