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.
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 Aritmatika
Operasi 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=xC
atau mengalikan setiap pixel dengan konstan:
y =Cx
Dalam 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:
y 255 if y >255
0 if y <0
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 :
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
Name
size
bytes
class
256x256
65536
uint8 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:
Nilai
Nilai
Nilai
Nilai
Nilai
Nilai
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.
Komplemen
komplemen 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 berjenis uint8, pendekatan terbaik adalah fungsi imcomplement. Gambar 2.6
menunjukkan fungsi pelengkap y = 255 - x, dan perintah yang digunakan
Nilai
Nilai
Nilai
Nilai
Nilai
Komplemen hanya piksel
yang gelap
2.3 Histogram
Nilai
Komplemen hanya piksel yang
terang
Diberikan 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
gambar
2.8 :
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:
yang menunjukkan
besar dari aslinya.
gambar
Menggunakan Imadjust
Untuk melakukan perentangan histogram di MATLAB fungsi imadjust mungkin dapat
digunakan. Di incarnation yang sederhana, dengan 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.
Penggunaan nilai gamma cukup untuk secara substansial mengubah tampilan gambar.
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.
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:
Figure 2.16: Gambar ban dan setelah pengaturan dengan nilai gamma
Grey Level i
ni
0
15
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
70
10
110
11
45
12
80
13
40
14
0
15
0
Sekarang ikuti transformasi nilai grey, diperoleh dengan membaca baris dan kolom dalam kolom diatas:
Original grey level i
0 1 2 3 4 5 6 7 8
9
10 11 12 13 14 15
Final grey level j
1 1 1 1 1 1 1 1 1
4
8 10 13 15 15 15
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 tight
Penerapan histogram equalization pada gambar pout, dan menghasilkan histogram yang di
inginkan. Hasil ini lihat figure 2.19. perhatikan histogram jauh lebih merata.
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].