terjemahan pengolahan titik

21
Bab 2 Pengolahan Titik 2.1 Pendahuluan Setiap operasi pengolahan citra mentransformasikan nilai-nilai abu-abu pada piksel. Namun, operasi pengolahan citra dapat dibagi menjadi menjadi tiga kelas berdasarkan informasi yang diperlukan untuk melakukan transformasi. Dari yang paling kompleks ke sederhana, yaitu sebagai berikut : 1. Transform (mengubah). Kelas ini yaitu mengubah nilai-nilai pixel dalam bentuk yang lain, tapi nilai-nilainya tetap sama (setara). Transformasi memungkinkan untuk beberapa algoritma yang sangat Efisien dan kuat, seperti yang akan kita lihat nanti. Kita mungkin berpendapat bahwa dalam menggunakan transformasi, seluruh gambar diproses sebagai blok tunggal yang besar. Hal ini dapat diilustrasikan dengan diagram yang ditunjukkan dalam gambar 2.1. Gambar 2.1 2. Proses Neighbourhood. Disini untuk mengubah level warna grey dari sebuah pixel yang telah ditentukan kita hanya perlu tahu nilai pada level warna grey dalam lingkup kecil, pada piksel-piksel disekitar pixel yang akan telah ditentukan tadi.

Upload: pipit-riski-s

Post on 12-Nov-2015

20 views

Category:

Documents


4 download

DESCRIPTION

terjemahan buku pengolahan citra alasnote

TRANSCRIPT

Bab 2Pengolahan Titik2.1 PendahuluanSetiap operasi pengolahan citra mentransformasikan nilai-nilai abu-abu pada piksel. Namun, operasi pengolahan citra dapat dibagi menjadi menjadi tiga kelas berdasarkan informasi yang diperlukan untuk melakukan transformasi. Dari yang paling kompleks ke sederhana, yaitu sebagai berikut :1. Transform (mengubah). Kelas ini yaitu mengubah nilai-nilai pixel dalam bentuk yang lain, tapi nilai-nilainya tetap sama (setara). Transformasi memungkinkan untuk beberapa algoritma yang sangat Efisien dan kuat, seperti yang akan kita lihat nanti. Kita mungkin berpendapat bahwa dalam menggunakan transformasi, seluruh gambar diproses sebagai blok tunggal yang besar. Hal ini dapat diilustrasikan dengan diagram yang ditunjukkan dalam gambar 2.1.

Gambar 2.1

2. Proses Neighbourhood. Disini untuk mengubah level warna grey dari sebuah pixel yang telah ditentukan kita hanya perlu tahu nilai pada level warna grey dalam lingkup kecil, pada piksel-piksel disekitar pixel yang akan telah ditentukan tadi.

3. Operasi Point. Nilai Sebuah pixel dirubah tanpa mengetahui piksel disekelilingnya.Meskipun operasi point sederhana, operasi ini mengandung beberapa operasi yang paling kuat dan luas digunakan dari semua operasi pengolahan citra. Operasi ini sangat berguna dalam gambar pra-pengolahan, di mana gambar diharuskan untuk dimodifikasi sebelum pekerjaan utama dicoba.2.2 Operasi AritmatikaOperasi ini bertindak dengan menerapkan fungsi sederhana y = f(x) pada masing-masing nilai grey dalam gambar. Untuk f(x) adalah sebuah fungsi yang menggambarkan rentang 0255 dalam fungsi tersebut. Fungsi sederhana penambahan dan pengurangan nilai constant untuk masing-masing piksel :y = x Catau mengalikan setiap pixel dengan konstan:y =CxDalam setiap kasus kita mungkin harus memiliki sedikit output dalam perintah untuk memastikan bahwa hasilny adalah bilangan bulat dalam batasan 0255. Kita juga dapat melakukan proses ini dengan pembulatan (jika perlu) untuk mendapatkan bilangan bulat, dan kemudian kita simpulkan nilai-nilai tersebut dengan menetapkan:

Kita dapat memperoleh pemahaman tentang bagaimana efek dari operasi ini dengan fungsi y = f(x). Gambar 2.2 menunjukkan hasil menambah atau mengurangi 128 dari setiap pixel dalam gambar. Perhatikan bahwa :

Gambar 2.2 penambahan dan pengurangan konstan

ketika kita menambahkan 128, semua nilai abu-abu dari 127 atau lebih besar akan dipetakan ke 255. Dan ketika kita kurangi 128, semua nilai abu-abu dari 128 atau kurang akan dipetakan ke 0. Dengan melihat grafik ini, kita mengamati bahwa pada umumnya menambahkan konstan akan mencerahkan gambar, dan mengurangkan konstan akan menggelapkan gambar.Kita dapat menguji ini pada gambar Blok blocks.tif, yang kita lihat dalam Gambar 1.4. Kita mulai dengan membaca gambar di:>> b=imread (blocks.tif);>> whos b NamesizebytesclassB256x25665536uint8 array

Titik perintah kedua adalah untuk menemukan tipe data numerik dari b; yaitu uint8. Data tipe unit8 digunakan untuk penyimpanan data saja; kita tidak dapat melakukan operasi aritmatika. Jika kita mencobanya, kita hanya mendapatkan pesan error:

Kita bisa mendapatkan putaran ini dengan dua cara. Pertama, kita bisa mengubah b menjadi matriks tipe ganda, tambahkan 128, dan kemudian kembali ke uint8 untuk tampilan:

Cara kedua, dan lebih elegan, adalah dengan menggunakan fungsi imadd Matlab yang dirancang secara tepat untuk melakukan ini:

Pengurangan juga sama; kita dapat mengubah dengan cara pertama, atau menggunakan fungsi imsubtract:

Dan sekarang kita dapat tampilkan :Gambar 2.3 operasi aritmatik penambahan dan penguranganKita juga dapat menampilkan kecerahan atau kegelapan gambar dengan perkalian; gambar 2.4 menunjukkan beberapa contoh efek dari fungsi ini. Untuk melaksanakan fungsi-fungsi ini, kita menggunakan fungsi multiply. Tabel 2.1 menunjukkan perintah tertentu yang diperlukan untuk melaksanakan fungsi pada gambar 2.4. Semua gambar-gambar ini dapat dilihat dengan imshow; dapat dilihat dalam gambar 2.5. Bandingkan hasil gelap b2 dan b3. Perhatikan b3 bahwa, meskipun lebih gelap dari aslinya, yakni :Nilai lamaNilai lamaNilai lamaNilai baruNilai baruNilai baru

Gambar 2.4 Menggunakan Perkalian dan Pembagian

Tabel 2.1: Implementasi perkalian piksel dengan matlab

Gambar 2.5 Operasi Matematika pada gambar : perkalian dan pembagian

cukup jelas, banyak informasi telah hilang oleh proses pengurangan, seperti dapat dilihat pada gambar b2. hal ini terjadi karena dalam gambar b2 semua piksel dengan nilai abu-abu 128 atau lebih kecil telah menjadi nol.Sama buruknya dalam informasi yang terdapat pada gambar b1 dan b4. perhatikan khususnya tepi cahaya blok berwarna di tengah bawah, tepat pada b1 dan b4 sebelah kanan.Komplemenkomplemen dari citra grayscale adalah negatif foto tersebut. jika matriks citra m adalah tipe ganda dan nilai abu-abu berada di kisaran 0.0 sampai 1.0, kita bisa mendapatkan foto negatifnya dengan perintah

jika gambar berbentuk biner, kita dapat menggunakan

jika gambar berjenis uint8, pendekatan terbaik adalah fungsi imcomplement. Gambar 2.6 menunjukkan fungsi pelengkap y = 255 - x, dan perintah yang digunakan

Nilai lamaNilai baru

Gambar 2.6 Gambar KomplemenEfek khusus yang menarik dapat diperoleh dengan melengkapi bagian dari gambar. misalnya dengan mengambil komplemen dari pixel nilai abu-abu 128 atau lebih kurang, dan meninggalkan piksel lainnya yang tidak tersentuh. atau kita bisa mengambil komplemen dari piksel yang 128 atau lebih besar, dan meninggalkan piksel lainnya yang tersentuh. Gambar 2.7 menunjukkan fungsi-fungsi ini. pengaruh fungsi ini disebut solarisasi.Komplemen hanya piksel yang terangKomplemen hanya piksel yang gelapNilai lamaNilai lamaNilai baruNilai baru

2.3 HistogramDiberikan pada gambar grayscale, histogram yang terdiri dari histogram tingkat abu-abu. yaitu, grafik yang menunjukkan berapa kali nilai tingkat abu-abu pada gambar muncul. kita dapat menyimpulkan banyak tentang penampilan gambar dari histogram, seperti contoh berikut menunjukkan: Pada gambar gelap, tingkat keabu-abuan (dan karenanya histogram) akan bergerombol di ujung bawah. Pada gambar cerah, tingkat abu-abu akan bergerombol di ujung atas. Pada gambar dengan kontras yang baik, tingkat abu-abu akan tersebar di banyak rentang.

kita dapat melihat histogram dari gambar dalam Matlab dengan menggunakan fungsi imhist:

(perintah sumbu yang rapat memastikan sumbu pada histogram secara otomatis disesuaikan dengan ukuran semua nilai bagian dalam). hasilnya ditunjukkan pada gambar 2.8. karena nilai abu-abu semua berkumpul bersama-sama di tengah histogram, kita dapat simpulkan bahwa gambar tersebut mempunyai kontras yang buruk, karena memang begitu.Gambar diberikan kontras yang buruk, kita dapat meningkatkan kontras tersebut, dengan menyebar luaskan histogramnya keluar. ada dua cara untuk melakukan hal ini.2.3.1 Peregangan Histogram (Peregangan Contras)misalkan kita memiliki sebuah gambar dengan histogram ditunjukkan pada Gambar 2.9, terkait dengan tabel jumlah n, nilai abu-abu :

Gambar 2.8 : gambar pout.tif dan histogramnya

Gambar 2.9: Figure 2.9: Sebuah histogram dari gambar dengan kontras yang buruk dan fungsi stretching(dengan n=360, seperti sebelumnya) Kita dapat merentangkan tingkat keabu-abuan di rentang tengah dengan menerapkan fungsi linear sebagian (piecewise linear function). Fungsi ini mempunyai efek merentang tingkat keabuan 5-9 ke tingkat keabuan 2-14, menurut persamaan berikut:

Dimana i adalah tingkat keabuan asli dan j hasilnya setelah transformasi. Tingkat keabuan diluar rentang ini lebih baik dibiarkan saja (seperti dalam kasus ini) atau diubah sesuai dengan fungsi linear pada ujung grafik diatas. Hasilnya adalah:

Dan histogram yang sesuai:

yang menunjukkan gambar dengan kontras yang lebih besar dari aslinya.Menggunakan ImadjustUntuk melakukan perentangan histogram di MATLAB fungsi imadjust mungkin dapat digunakan. Di incarnation yang sederhana, dengan perintah:

Gambar 2.10: Fungsi stretching yang diberikan imadjustMerentangkan gambar sesuai dengan fungsi yang ditunjukkan pada gambar 2.10. Karena imadjust dirancang untuk bekerja dengan baik pada tipe double, uint8, atau uint16 nilai-nilai a, b, c dan d harus antara 0 dan 1, fungsi secara otomatis mengkonversi gambar (jika diperlukan) untuk tipe double.Perhatikan bahwa imadjust tidak bekerja cukup dengan cara yang sama seperti yang ditunjukkan pada gambar 2.9. Nilai pixel kurang dari a dikonversi ke c dan nilai pixel lebih besar dari b dikonversi ke d. Jika salah satu [a,b] atau [c,d] dipilih untuk menjadi [0,1], singkatan [] dapat digunakan. Misalnya perintah:

Atau perintah: Membalikkan nilai keabuan dari sebuah gambar, untuk menghasilkan hasil yang serupa dengan foto negatif.Fungsi imadjust mempunyai satu parameter opsional lainnya: nilai gamma, yang menggambarkan bentuk dari fungsi antara koordinat (a,c) dan (b,d). Jika gamma sama dengan 1 yang merupakan default, maka digunakan pemetaan linear (linear mapping), seperti yang ditunjukkan pada gambar 2.10. Namun, nilai gamma kurang dari 1 menghasilkan fungsi yang cekung ke bawah, seperti yang ditunjukkan gambar 2.11 sebelah kiri, dan nilai gamma lebih besar dari 1 menghasilkan fungsi yang cekung ke atas, seperti yang ditunjukkan gambar 2.11 sebelah kanan.

Gambar 2.11: Fungsi imadjust dengan gamma tidak sama dengan 1Fungsi yang digunakan adalah variasi kecil pada garis standar antara dua titik:

Penggunaan nilai gamma cukup untuk secara substansial mengubah tampilan gambar.Contoh :

Menghasilkan seperti yang ditunjukkan gambar 2.12.Kita mungkin dapat melihat fungsi perentangan imadjust dengan fungsi plot. Contoh:

Menghasilkan plot yang ditunjukkan gambar 2.13. Karena p dan ph merupakan matrik yang terdiri dari nilai asli dan nilai setelah fungsi imadjust, fungsi plot hanya plot p dan ph, menggunakan titik-titik untuk melakukannya.

Sebuah fungsi peregangan piecewise linearKita dapat dengan mudah menulis fungsi kita sendiri untuk melakukan peregangan piecewise linear seperti yang ditunjukkan dalam Gambar 2.14. Untuk melakukan ini, kita akan menggunakan fungsi find, untuk menemukan nilai piksel dalam gambar antara ai dan ai+1. Karena garis antara koordinat (ai,bi) dan (ai+1,bi+1) memiliki persamaan

Gambar 2.14: Sebuah fungsi peregangan piecewise linear

Pusat fungsi kita akan menjadi garis

Dimana im adalah gambar input dan out adalah gambar output. Sebuah prosedur sederhana yang mengambil sebagai masukan gambar tipe uint8 atau ganda ditampilkan dalam Gambar 2.15. Sebagai contoh penggunaan fungsi ini:

hasil gambarnya ditunjukkan pada Gambar 2.16.

2.3.2 pemerataan Histogram Masalah dengan salah satu metode di atas histogram peregangan adalah bahwa mereka membutuhkan input pengguna. Kadang-kadang pendekatan yang lebih baik disediakan oleh pemerataan histogram, yang merupakan sepenuhnya prosedur otomatis. Idenya adalah untuk mengubah histogram satu yang seragam, yaitu bahwa setiap bar di histogram adalah ketinggian yang sama, atau dengan kata lain bahwa setiap tingkat keabuan dalam gambar terjadi dengan frekuensi saem. Dalam praktek ini umumnya tidak mungkin, meskipun kita akan melihat hasil dari pemerataan histogram memberikan hasil yang sangat baik. Misalkan image memiliki L ditingkat 0,1,2,...L-1 abu-abu yang berbeda, Dan tingkat i abu-abu terjadi n kali dalam gambar. Misalkan juga bahwa jumlah piksel dalam gambar n (sehingga n0+ n1 + n2 +....+ nL-1=n. Untuk mengubah tingkat abu-abu untuk mendapatkan gambar yang lebih baik kontras, kita mengubah tingkat keabuan i ke

Dan angka ini dibulatkan pada angka bulat terdekat.

Figure 2.16: Gambar ban dan setelah pengaturan dengan nilai gamma

Figure 2.17: Histogram lain menunjukan kontras rendah

ContohKira-kira gambar greyscale 4-bit pada histogram figure 2.17. diterapkan dalam nomor di tabel ni nilai dari grey.

Grey Level i0123456789101112131415

ni15000000007011045804000

Figure 2.18: histogram figure 2.17 setelah equalization (dengan n = 360). Harapan gambar ini dapat cerah secara seragam, dengan beberapa titik hitam. Untuk menyamakan histogram ini, total bentuk jalannya ni, dan kalikan masing-masing 15/360 = 1/24.

Sekarang ikuti transformasi nilai grey, diperoleh dengan membaca baris dan kolom dalam kolom diatas:Original grey level i0123456789101112131415

Final grey level j111111111481013151515

dan nilai histogram j tampil di figure 2.18. hal ini jauh lebih menyabar dibandingkan dengan histogram asli, dan gambar yang dihasilkan menunjukan kontras yang tinggi.Untuk menerapkan histogram equalization di MATLAB, menggunakan fungsi histeq; contoh:>> p=imread(pout.tif);>> ph=histeq(p);>> imshow(ph),figure,imhist(ph),axis tightPenerapan histogram equalization pada gambar pout, dan menghasilkan histogram yang di inginkan. Hasil ini lihat figure 2.19. perhatikan histogram jauh lebih merata.

Figure 2.19: histogram figure 2.8 setelah equalizationHal ini sesuai dengan peningkatan kontras gambar yang lebih besar.Diberikan satu contoh, gambar yang sangat gelap. kita akan mendapatkan gambar yang gelap. dengan mengambil gambar dan menggunakan imdivide.>> en=imread(engineer.tif);>> e=imdivide(en,4);Karena matriks e hanya berisi nilai yang rendah makan akan muncul sangat gelap ketika ditampilkan. Kita akan menampilkan matriks dan histogram dengan perintah:>> imshow(e),figure,imhist(e),axis tightDan hasilnya ditampilkan figure 2.20.Seperti yang dilihat, gambar yang sangat gelap memiliki histogram yang megumpul di kiri dalam skala.Tapi kita dapat menerapkan histogram equalization untuk gambar ini, dan manampilkan hasilnya:>> en=histeq(e);>> imshow(eh),figure,imhist(eh), axis tightDan hasilnya ditampilkan figure 2.11.

Mengapa bekerjaPertimbangakan histogram figure 2.17. untuk diterapkan histogram streching, kita akan membutuhkan nilai peregangan antara 9 dan 13. Demikian, kita butuh untuk menerapkan fungsi yang mirip untuk itu lihat figure 2.9.Mari pertimbangkan histogram kumulatif, yang ditampilkan figure 2.22. garis putus-putus hanya bergabung di bagian atas bar histogram. Namun, hal itu dapat diartikan sebagai histogram yang tepat.

Figure 2.20: versi gelap dari engineer.tif dan histogramnya

Figure 2.21: gambar dari 2.20 equalisasi dan histogram

Figure 2.22: Histogram kumulatif

peregangan fungsi. Untuk melakukan ini, kita perlu skala nilai-nilai y sehingga mereka antara 0 dan 15 bukan 0 dan 360. Tapi ini justru metode yang dijelaskan dalam bagian 2.3.2. Sebagaimana telah kita lihat, tidak ada contoh histogram, setelah pemerataan, seragam. Ini adalah hasil sifat diskrit gambar. Jika kita memperlakukan gambar sebagai fungsi kontinu f(x,y), dan histogram sebagai daerah antara kontur yang berbeda (lihat misalnya Castleman [1], maka kita dapat mengobati histogram sebagai fungsi kepadatan probabilitas. Tapi corre`sponding kepadatan kumulatif fungsi akan selalu memiliki histogram seragam, lihat misalnya Hogg dan Craig [6].