Perataan histogram

Dari testwiki
Revisi sejak 4 Maret 2024 09.43 oleh imported>Badak Jawa (Mengembalikan suntingan oleh 103.209.131.66 (bicara) ke revisi terakhir oleh InternetArchiveBot)
(beda) ← Revisi sebelumnya | Revisi terkini (beda) | Revisi selanjutnya → (beda)
Loncat ke navigasi Loncat ke pencarian
Sebuah histogram yang bernilai nol selain bagian tengahnya diubah dengan merentangkan bagian tengahnya agar mengisi seluruh sumbu x.
Histogram citra sebelum dan sesudah perataan

Perataan histogram adalah metode pengolahan citra yang menyesuaikan kontras dengan mengatur histogram citra.

Gambaran umum

Metode ini meningkatkan kontras global pada kebanyakan citra, khususnya pada citra yang nilainya berdekatan (rentangnya kecil). Dengan penyesuaian ini, intensitasnya dapat disebarkan dengan merata pada histogram sehingga bagian dengan kontras rendah dapat menjadi kontras tinggi. Perataan histogram melakukannya dengan meratakan nilai intensitas yang paling sering muncul.

Metode ini cocok untuk citra dengan latar depan dan latar belakang yang sama-sama terang atau sama-sama gelap. Contohnya, struktur tulang dapat menjadi lebih jelas pada hasil rontgen (citra sinar X) serta hasil fotografi yang terlalu terang atau terlalu gelap dapat menjadi jelas (lebih detail).

Keuntungan metode ini adalah penggunaan operasi yang bisa dibalik. Jadi, secara teori, bila operasinya (fungsinya) diketahui, histogram asalnya dapat dipulihkan. Perhitungan metode ini tidak mahal (tidak berat). Kerugian metode ini adalah tidak membedakan derau dari benda yang dimaksud sehingga kontras derau juga ikut naik.

Perataan histogram sering menghasilkan citra yang kurang riil (terlihat nyata). Namun, cara ini dapat membantu untuk citra ilmiah, seperti citra sinar X, citra satelit, dan citra suhu, yang biasanya menggunakan warna semu. Perataan histogram juga dapat memberikan efek samping (seperti gradasi citra yang tampak) ketika diterapkan untuk citra dengan kedalaman warna yang rendah. Perataan histogram cocok untuk citra dengan kedalaman warna yang lebih tinggi daripada ukuran palet, seperti data kontinu dan citra 16 bit.

Modifikasi metode ini menggunakan beberapa histogram yang disebut subhistogram untuk memperkuat kontras lokal alih-alih kontras global. Contohnya adalah perataan histogram adaptif, perataan histogram adaptif terbatas kontras (CLAHE), perataan histogram banyak puncak (MPHE), dan perataan histogram ganda teroptimasi beta multiguna (MBOBHE). Tujuan metode-metode tersebut, khususnya MBOBHE, adalah untuk memperbaiki kontras tanpa menghasilkan pergeseran rata-rata kecerahan dan kekurangan detail dengan mengubah algoritme perataan histogram.[1]

Implementasi

Misalkan Templat:Math adalah citra berderajat keabuan diskret dan Templat:Math adalah banyak piksel dengan nilai Templat:Math. Peluang suatu piksel bernilai Templat:Math (Templat:Math) adalah

px(i)=p(x=i)=nin,0i<L

dengan Templat:Math adalah banyak tingkat keabuan pada citra (256 tingkat untuk citra 8 bit), Templat:Math adalah banyak piksel keseluruhan, dan Templat:Math berada dalam rentang Templat:Math.

Kita juga definisikan fungsi distribusi kumulatif (CDF) untuk Templat:Math sebagai

cdfx(i)=j=0ipx(x=j)

yang juga menjadi histogram kumulatif citra.

Kita buat transformasi dalam bentuk

y=T(x)

untuk membuat citra baru y dengan histogram yang datar. Citra tersebut akan memiliki fungsi distribusi kumulatif yang berbentuk garis lurus, yaitu Templat:Math untuk Templat:Math suatu tetapan.

Perhatikan bahwa Templat:Math memetakan tingkat-tingkat menjadi nilai dalam rentang Templat:Math karena kita menggunakan histogram ternormalkan dari Templat:Math.

Penjelasan lebih terperinci disediakan di sini.

Citra berwarna

Penjelasan di atas dipakai untuk citra berderajat keabuan. Namun, metode ini juga bisa diterapkan untuk citra berwarna. Salah satunya adalah dengan meratakan histogram untuk tiap saluran (merah, hijau, dan biru). Namun, cara tersebut dapat merusak keseimbangan warna citra karena distribusi relatif (antarsaluran) berubah. Cara lainnya adalah dengan mengubah citra ke dalam ruang warna Lab atau HSL/HSV terlebih dahulu, lalu menerapkan metode ini untuk nilai kependarannya. Cara ini mempertahankan warna dan saturasinya.[2]

Contoh

Pada contoh berikut, fungsi distribusi kumulatif (CDF) bermakna sama dengan histogram kumulatif.

Citra kecil

Citra 8×8 berderajat keabuan 8 bit

Citra berderajat keabuan di sebelah memiliki nilai-nilai berikut:

52 55 61 59 79 61 76 61
62 59 55 104 94 85 59 71
63 65 66 113 144 104 63 72
64 70 70 126 154 109 71 69
67 73 68 106 122 88 68 68
68 79 60 70 77 66 58 75
69 85 64 58 55 61 65 83
70 87 69 68 65 73 78 90

Histogram citra di atas dan fungsi distribusi kumulatif (CDF) ditunjukkan oleh tabel berikut. Agar ringkas, hanya nilai-nilai yang muncul yang ditunjukkan.

Templat:Math frek Templat:Math Templat:Math frek Templat:Math Templat:Math frek Templat:Math
52 1 1 69 3 33 88 1 53
55 3 4 70 4 37 90 1 54
58 2 6 71 2 39 94 1 55
59 3 9 72 1 40 104 2 57
60 1 10 73 2 42 106 1 58
61 4 14 75 1 43 109 1 59
62 1 15 76 1 44 113 1 60
63 2 17 77 1 45 122 1 61
64 2 19 78 1 46 126 1 62
65 3 22 79 2 48 144 1 63
66 2 24 83 1 49 154 1 64
67 1 25 85 2 51
68 5 30 87 1 52

Dari tabel di atas, nilai minimum pada citra adalah 52 dan maksimumnya adalah 154. Perhatikan bahwa nilai CDF untuk nilai maksimum (154) adalah sama dengan jumlah piksel pada citra. Selanjutnya, nilai CDF di atas diskalakan ke dalam rentang Templat:Math. Rumus umumnya adalah sebagai berikut:

h(v)=bulatkan(cdf(v)cdfminncdfmin×(L1))

dengan Templat:Math adalah nilai CDF terendah bukan nol, Templat:Math adalah banyak piksel keseluruhan, dan Templat:Math adalah banyak tingkat keabuan pada citra (256 tingkat untuk citra 8 bit).

Untuk contoh kali ini, rumus di atas menjadi berikut.

h(v)=bulatkan(cdf(v)163×255)

Dari rumus tersebut, dihasilkan pemetaan berikut. Seperti sebelumnya, hanya nilai-nilai yang muncul yang ditunjukkan.

Templat:Math Templat:Math Templat:Math Templat:Math Templat:Math Templat:Math
52 0 69 130 88 210
55 12 70 146 90 215
58 20 71 154 94 219
59 32 72 158 104 227
60 36 73 166 106 231
61 53 75 170 109 235
62 57 76 174 113 239
63 65 77 178 122 243
64 73 78 182 126 247
65 85 79 190 144 251
66 93 83 194 154 255
67 97 85 202
68 117 87 206

Setelah mengganti nilai tiap piksel menjadi sesuai tabel di atas, citra hasilnya menjadi di bawah ini.

0 12 53 32 190 53 174 53
57 32 12 227 219 202 32 154
65 85 93 239 251 227 65 158
73 146 146 247 255 235 154 130
97 166 117 231 243 210 117 117
117 190 36 146 178 93 20 170
130 202 73 20 12 53 85 194
146 206 130 117 85 166 182 215

Perhatikan bahwa nilai terendah (52) menjadi 0 dan nilai tertinggi (154) menjadi 255.

Templat:Plain image with caption Templat:Plain image with caption
Templat:Plain image with caption Templat:Plain image with caption

Citra berukuran penuh

Templat:Plain image with caption Templat:Plain image with caption
Templat:Plain image with caption Templat:Plain image with caption

Lihat pula

Referensi

Templat:Reflist

Daftar pustaka