Anda di halaman 1dari 17

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.
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 :

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

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:

Dan sekarang kita dapat tampilkan :

Gambar 2.3 operasi aritmatik penambahan dan pengurangan


Kita 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

Nilai

Nilai

Nilai

Nilai

Nilai

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.
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 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

Nilai

Gambar 2.6 Gambar Komplemen


Efek 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.

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:

Dan histogram yang sesuai:

yang menunjukkan
besar dari aslinya.

gambar

dengan kontras yang lebih

Menggunakan Imadjust
Untuk melakukan perentangan histogram di MATLAB fungsi imadjust mungkin dapat
digunakan. Di incarnation yang sederhana, dengan perintah:

Gambar 2.10: Fungsi stretching yang diberikan imadjust


Merentangkan 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 1


Fungsi 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 linear


Kita 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 a i 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


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

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

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 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.

Figure 2.19: histogram figure 2.8 setelah equalization


Hal 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 tight
Dan 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 tight
Dan hasilnya ditampilkan figure 2.11.
Mengapa bekerja
Pertimbangakan 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].

Anda mungkin juga menyukai