[TRANSLET] PENGOLAHAN TITIK (POINT PROCESSING)

18
PENGOLAHAN TITIK 2.1 Pendahuluan Setiap operasi pengolahan citra mengubah nilai-nilai abu-abu dari piksel. Namun, operasi pengolahan citra dapat dibagi menjadi tiga kelas berdasarkan informasi yang diperlukan untuk melakukan transformasi. Dari yang paling kompleks sampai dengan yang paling sederhana, mereka adalah: 1. Transformasi. Sebuah transformasi mewakili nilai-nilai pixel dalam bentuk lain, tapi setara. Transformasi memungkinkan untuk beberapa algoritma yang sangat efisien dan kuat, seperti yang akan kita lihat nanti. Kami dapat mempertimbangkan bahwa dalam menggunakan transform, seluruh gambar diproses sebagai blok tunggal yang besar. Hal ini dapat diilustrasikan dengan diagram yang ditunjukkan pada Gambar 2.1. 2. Pengolahan Neighbourhood. Untuk mengubah tingkat keabuan dari piksel yang diberikan kita hanya perlu tahu nilai dari tingkat abu-abu di lingkungan kecil piksel sekitar piksel yang diberikan. 3. Pengolahan Point. Nilai abu-abu Sebuah pixel diubah tanpa pengetahuan sekelilingnya. Meskipun pengolahan point itu sederhana, mereka berisi beberapa yang paling kuat dan luas digunakan dari semua operasi pengolahan citra. Mereka terutama berguna dalam gambar pra-pengolahan, dimana gambar dituntut untuk dimodifikasi sebelum pekerjaan utama dicoba. 2.2 Operasi Aritmatik Operasi ini berperan dengan menggunakan sebuah fungsi sederhana =

Transcript of [TRANSLET] PENGOLAHAN TITIK (POINT PROCESSING)

PENGOLAHAN TITIK

2.1 Pendahuluan

Setiap operasi pengolahan citra mengubah nilai-nilai abu-abu dari piksel. Namun,

operasi pengolahan citra dapat dibagi menjadi tiga kelas berdasarkan informasi yang

diperlukan untuk melakukan transformasi. Dari yang paling kompleks sampai dengan yang

paling sederhana, mereka adalah:

1. Transformasi. Sebuah transformasi mewakili nilai-nilai pixel dalam bentuk lain, tapi

setara. Transformasi memungkinkan untuk beberapa algoritma yang sangat efisien dan

kuat, seperti yang akan kita lihat nanti. Kami dapat mempertimbangkan bahwa dalam

menggunakan transform, seluruh gambar diproses sebagai blok tunggal yang besar.

Hal ini dapat diilustrasikan dengan diagram yang ditunjukkan pada Gambar 2.1.

2. Pengolahan Neighbourhood. Untuk mengubah tingkat keabuan dari piksel yang

diberikan kita hanya perlu tahu nilai dari tingkat abu-abu di lingkungan kecil piksel

sekitar piksel yang diberikan.

3. Pengolahan Point. Nilai abu-abu Sebuah pixel diubah tanpa pengetahuan sekelilingnya.

Meskipun pengolahan point itu sederhana, mereka berisi beberapa yang paling kuat dan

luas digunakan dari semua operasi pengolahan citra. Mereka terutama berguna dalam

gambar pra-pengolahan, dimana gambar dituntut untuk dimodifikasi sebelum pekerjaan

utama dicoba.

2.2 Operasi Aritmatik

Operasi ini berperan dengan menggunakan sebuah fungsi sederhana

𝑦 = 𝑓 𝑥

Untuk setiap nilai abu-abu dalam gambar. f(x) ini merupakan fungsi yang memetakan

rentang 0...255 pada dirinya sendiri. Fungsi sederhana termasuk penambahan atau

pengurangan sebuah nilai konstant untuk setiap piksel:

𝑦 = 𝑥 ± 𝐶

Atau perkalian tiap piksel dengan sebuah konstanta:

𝑦 = 𝐶𝑥

Dalam setiap kasus mungkin kita harus sedikit mengubah outputnya untuk memastikan

bahwa hasilnya adalah bilangan bulat dalam rentang 0-255. Kita dapat melakukan ini

dengan pembulatan pertama hasilnya (jika diperlukan) untk mendapatkan bilangan bulat,

dan kemudian mengumpulkan nilai-nilainya dengan menetapkan:

Kita dapat memperoleh pemahaman tentang bagaimana operasi ini mempengaruhi gambar

dengan memplot y = f(x). Gambar 2.2 memperlihatkan hasil dari penambahan atau

pengurangan 128 dari setiap piksel dalam gambar. Perhatikan bahwa

Ketika kita menambahkan 128, semua nilai abu-abu dari 127 atau lebih akan terplot ke

255. Dan ketika kita mengurangkan 128, semua nilai abu-abu dari 128 atau kurang akan

terplot ke 0. Dengan melihat pada grafik ini, kita dapat meneliti bahwa secara umum

penambahan konstanta akan mempercerah sebuah gambar, dan pengurangan sebuah

konstanta akan mempergelapnya.

Kita dapat mengetesnya pada gambar “blocks” blocks.tif., yang telah kita liha

dalam gambar 1.4. kita mulai dengan membaca gambarnya dalam:

Point dari perintah kedua adalah untuk menemukan tipe dat numerik b: itu adalah uint8.

Tipe data unit8 digunakan hanya untuk data penyimpanan; kita tidak dapat melakukan

operasi aritmatik. Jika kita mencoba melakukannya, kita hanya akan mendapat sebuah

pesan error:

Kita dapat melakukan ini dalam dua cara. Pertama kita dapat mengganti b kedalam

sebuah matrik tipe ganda: menambah 128 dan mengubah kembali ke uint8 untuk tampilan:

Kedua, dan merupakan cara yang lebih elegan, yaitu menggunakan fungsi Matlab imadd

yang didesain secara tepat untuk melakukan ini:

Pengurangan serupa, kita dapat mengubah matriks keluar masuk dan keluar dari ganda,

atau menggunakan fungsi imsubtract:

Dan sekarang kita dapat melihat mereka:

Dan hasilnya terlihat pda Gambar 2.3.

Kami juga dapat melakukan pencerahan atau penggelapan gambar dengan perkalian;

Gambar 2.4 menunjukkan beberapa contoh fungsi yang akan memiliki efek ini. Untuk

melaksanakan fungsi ini, kita menggunakan fungsi immultiply. Tabel 2.1 menunjukkan

perintah tertentu yang diperlukan untuk melaksanakan fungsi dari gambar 2.4. Semua

gambar-gambar ini dapat dilihat dengan imshow, mereka ditunjukkan dalam Gambar 2.5.

Bandingkan hasil gelap b2 dan b3. Perhatikan bahwa b3, meskipun lebih gelap daripada

yang asli, masih tetap lebih jelas, sedangkan banyak informasi telah hilang oleh proses

pengurangan, seperti dapat terlihat dalam gambar b2. Hal ini karena dalam b2 gambar

semua piksel dengan nilai-nilai abu-abu 128 atau kurang telah menjadi

nol.

Sebuah kerugian serupa informasi telah terjadi dalam gambar b1 dan b4. Catatan

khususnya tepi balok berwarna terang di bagian tengah bawah, di kedua b1 dan b4 tepi

kanan telah menghilang. Namun, tepi cukup terlihat dalam b5 gambar.

Complements

Komplemen dari gambar grayscale adalah fotografi negatif. Jika matriks gambar m

adalah tipe ganda dan sehingga nilai-nilai abu-abu berada di kisaran 0,0 sampai 1,0, Kita

bisa memperoleh negatif dengan perintah

Jika gambarnya biner, kita dapat menggunakan:

Jika gambarnya adalah jenis uint8, pendekatan yang terbaik adalah fungsi

imcomplement. Gambar 2.6 menunjukkan fungsi pelengkap y=255-x , dan hasil dari

perintah itu

Efek khusus menarik dapat diperoleh dengan melengkapi hanya bagian dari gambar,

misalnya dengan mengambil komplemen dari nilai piksel abu-abu 128 atau kurang, dan

meninggalkan piksel lainnya tidak tersentuh. Atau kita bisa mengambil komplemen dari

piksel yang 128 atau lebih, dan meninggalkan piksel lainnya tidak tersentuh.

Gambar 2.7 menunjukkan fungsi tersebut. Efek dari fungsi ini disebut solarisasi.

2.3 Histogram

Mengingat grayscale, histogram terdiri dari histogram tingkat abu-abu, yaitu, grafik

yang menunjukkan jumlah kali setiap tingkat keabuan terjadi dalam gambar. Kita dapat

menyimpulkan banyak tentang penampilan gambar dari histogram, seperti contoh berikut

menunjukkan:

� Dalam gambar gelap, tingkat abu-abu (dan karenanya histogram) akan bergerombol di

ujung bawah:

� Dalam gambar seragam terang, tingkat abu-abu akan berkerumun di ujung atas:

� Dalam gambar dengan kontras, tingkat abu-abu akan baik tersebar di banyak kisaran:

Kita bisa melihat histogram dari gambar di Matlab dengan menggunakan fungsi imhist:

(Perintah sumbu ketat menjamin sumbu histogram secara otomatis diskala untuk

menyesuaikan semua nilai dalam). Hasilnya ditunjukkan dalam gambar 2.8. Karena nilai

abu-abu semua berkumpul bersama-sama dipusat histogram, kita akan mengharapkan

gambar yang kontrasnya akan buruk, karena memang itu. Mengingat citradengan kontras

buruk, kami ingin meningkatkan kontras, dengan menggelar histogramnya. Ada dua cara

untuk melakukan hal ini.

2.3.1 Histogram peregangan (stretching Kontras)

Misalkan kita memiliki sebuah gambar dengan histogram ditunjukkan dalam Gambar 2.9,

terkait dengan tabel dari nomor n nilai-nilai abu-abu:

(dengan n-360, Seperti sebelumnya.) Kita dapat meregangkan tingkat abu-abu di tengah

kisaran keluar dengan menerapkan fungsi linier piecewise ditunjukkan di sebelah kanan

dalam gambar 2.9. Fungsi ini memiliki? Dll e peregangan tingkat abu-abu5-9 ke tingkat

abu-abu 2-14 menurut persamaan:

Dimana i adalah tingkat keabuan asli danj hasilnya setelah transformasi. Tingkat abu-

abu ini di luar range baik ditinggalkan sendirian (seperti dalam kasus ini) atau diubah

sesuai dengan fungsi linear di ujung grafik di atas. Ini menghasilkan:

Dan histogram yang sesuai:

yang menunjukkan gambar dengan kontras yang lebih besar daripada yang asli.

Penggunaan imadjust

Untuk melakukan histogram peregangan di Matlab fungsi imadjust dapat digunakan.

Dalam inkarnasi paling sederhana, perintahnya

bentangkan gambar sesuai dengan fungsi yang ditampilkan dalam Gambar 2.10. Karena

imadjust dirancang untuk

bekerja sama dengan baik pada gambar tipe ganda, uint8 atau uint16 nilai-nilai a, b, c,

dan d harus diantara 0 dan 1, fungsi secara otomatis mengkonversi gambar (jika

diperlukan) untuk menjadi tipe ganda.

Perhatikan bahwa imadjust tidak bekerja cukup dengan cara yang sama seperti yang

ditunjukkan dalam Gambar 2.9. Nilai pixel kurang dari a semua dikonversi ke nilai c, dan

pixel yang lebih besar daripada b semua dikonversi ke d . Jika salah satu dari

[A, b] atau [c, d] yang dipilih untuk menjadi [0,1], singkatan [] dapat digunakan. Jadi,

misalnya, perintah

Tidak melakukan apa-apa, dan perintahnya

Invers nilai-nilai abu-abu gambar, untuk menghasilkan hasil yang serupa dengan negatif

fotografi.

Fungsi imadjust memiliki satu parameter opsional lainnya: nilai gamma, yang

menggambarkan bentuk fungsi antara koordinat (a,c) dan (b,d). Jika gamma adalah sama

dengan 1, yang default, maka pemetaan linear digunakan, seperti yang ditunjukkan di

atas dalam Gambar 2.10. Namun, nilai kurang dari satu menghasilkan fungsi yang cekung

ke bawah, seperti yang ditunjukkan di sebelah kiri di Gambar 2.11, dan nilai-nilai

lebih besar dari satu menghasilkan Gambar yang cekung ke atas, seperti yang

ditunjukkan di sebelah kanan dalam Gamnbar 2.11.

Fungsi yang digunakan adalah variasi kecil pada garis standar antara dua titik:

Penggunaan nilai gamma bisa saja cukup untuk secara substansial mengubah tampilan

gambar. Sebagai contoh:

menghasilkan hasil yang ditunjukkan dalam Gambar 2.12.

Kita dapat melihat fungsi peregangan imadjust dengan plot fungsi. Sebagai contoh,

menghasilkan plot ditunjukkan dalam Gambar 2.13. Karena p dan ph adalah matriks yang

berisi nilai-nilai asli dan nilai-nilai setelah fungsi imadjust, fungsi plot yang hanya plot

mereka, menggunakan titik untuk melakukannya.

Sebuah fungsi piecewise linear peregangan

Kita dapat dengan mudah menulis fungsi kita sendiri untuk melakukan piecewise linear

peregangan seperti yang ditunjukkan dalam Gambar2.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,bj) dan (ai+1, bi+1) memiliki persamaan

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 terlihat pada Gambar2.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 ni 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.

contoh

Misalkan greyscale gambar 4-bit memiliki histogram ditunjukkan dalam Gambar 2.17.

berhubungan dengan tabel angka ni nilai-nilai abu-abu:

(Dengan n=360.) Kami harapkan gambar ini menjadi cerah secara seragam, dengan

beberapa titik gelap di atasnya. Untuk menyamakan histogram ini, kita membentuk total

running dari ni, Dan kalikan masing-masing sebesar 15/360=1/24:

Kami sekarang memiliki transformasi nilai berikut abu-abu, yang diperoleh dengan

membaca kolom pertama dan terakhir kolom dalam tabel di atas:

dan histogram dari nilai j ditampilkan dalam Gambar 2.18. Ini jauh lebih menyebar

dibandingkan histogram asli, sehingga gambar yang dihasilkan harus menunjukkan

kontras yang lebih besar. Untuk menerapkan pemerataan histogram di Matlab, gunakan

fungsi histeq, misalnya:

Gunakanlah pemerataan histogram ke gambar cemberut, dan menghasilkan yang

dihasilkan histogram. Ini Hasilnya ditunjukkan dalam Gambar 2.19. Perhatikan

penyebaran jauh lebih besar dari histogram. Hal ini sesuai

dengan peningkatan yang lebih besar dari kontras pada gambar.

Kami memberikan satu contoh lagi, bahwa gambar yang sangat gelap. Kita bisa

mendapatkan gambar gelap dengan mengambil gambar dan menggunakan imdivide.

Karena matriks e hanya berisi nilai-nilai rendah akan muncul sangat gelap ketika

ditampilkan. Kita dapat menampilkan matriks ini dan histogram dengan perintah biasa:

dan hasilnya ditunjukkan dalam Gambar 2.20. Seperti yang Anda lihat, gambar yang

sangat gelap memiliki histogram yang sesuai berat bergerombol di ujung bawah

skala.

Tapi kita dapat menerapkan pemerataan histogram untuk gambar ini, dan menampilkan

hasil:

dan hasilnya terlihat pada Gambar2.21.

Mengapa ia bekerja

Pertimbangkan histogram dalam Gambar 2.17. Untuk menerapkan histogram peregangan,

kita perlu untuk merentangkan nilai-nilai antara tingkat abu-abu 9 dan 13. Dengan

demikian, kita perlu menerapkan fungsi piecewise serupa dengan yang ditunjukkan dalam

Gambar 2.9. Mari kita mempertimbangkan histogram kumulatif, yang ditampilkan dalam

Gambar2.22. Garis putus-putus hanya bergabung atas bar histogram. Namun, dapat

diartikan sebagai suatu histogram yang tepat

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 yang `sponding kepadatan kumulatif fungsi akan selalu memiliki

histogram seragam, lihat misalnya Hogg dan Craig [6].