34
Modifikasi Histogram

Budi Modifikasi Histogram Budi

Embed Size (px)

Citation preview

Page 1: Budi Modifikasi Histogram Budi

Modifikasi Histogram

Page 2: Budi Modifikasi Histogram Budi

Ekualisasi histogram

Nilai-nilai intensitas di dalam citra diubah sehingga penyebarannya seragam

Tujuannya untuk memperoleh penyebaran histogram yang merata sehingga setiap derajat keabuan memiliki jumlah pixel yang relatif sama

Dapat dilakukan pada keseluruhan citra atau pada beberapa bagian citra saja

Here comes your footer Page 2

Page 3: Budi Modifikasi Histogram Budi

Ekualisasi histogram adaptif

Citra dibagi menjadi blok-blok (sub-image) dengan ukuran n x n, kemudian pada setiap blok dilakukan proses ekualisasi histogram

Ukuran blok (n) dapat bervariasi dan setiap ukuran blok akan memberikan hasil yang berbeda

Setiap blok dapat saling tumpang tindih beberapa pixel dengan blok lainnya

Here comes your footer Page 3

Page 4: Budi Modifikasi Histogram Budi

Ekualisasi Histogram

Here comes your footer Page 4

Page 5: Budi Modifikasi Histogram Budi

Langkah-langkah melakukan ekualisasi histogram (1)

Baca image dan dapatkan nilai tingkat keabuan dari setiappixel penyusunnya, dan simpan dalam array. Gunakanfungsi imread().

Cari nilai maksimum tingkat keabuan citra tersebut. Nilaiini nantinya akan dipakai untuk menentukan histogram ekualisasinya. Gunakan fungsi max()

Buat histogram citra asal. Simpan frekuensi kemunculanderajat keabuan tersebut dalam array(vector). Mula-mulakita siapkan array(vector) kosong yang ukurannya mengacukepada nilai maksimum derajat keabuan citra dibulatkanke 2n. Untuk selajutnya hitung frekuensi kemunculanderajat keabuan pada masing-masing posisi vector.

Page 6: Budi Modifikasi Histogram Budi

Langkah-langkah melakukan ekualisasi histogram (2)

Buat histogram ekualisasinya. Histogram ekualisasi dicaridengan menghitung prosentase kemunculan derajatkeabuan yang ada dikalikan dengan derajat keabuanmaksimum dari citra asal.

Cari nilai tingkat keabuan dari citra bari hasil ekualisasidengan menggunakan histogram ekualisasinya.

Untuk memetakan histogram ekualisasi menjadi citra baru, kita siapkan array (matrik) kosong yang ukurannya samadengan citra asal. Selanjutnya masing-masing nilai matrikbaru dihitung dari nilai histogram ekualisasi bedasarkannilai matrik gambar lama.

Petakan ke citra baru. ( ) ( )[ ], , 255 , , 1 .r c b P r c b= × +IJ I

Page 7: Budi Modifikasi Histogram Budi

Here comes your footer Page 7

CONTOH

Citra 64x64 pixel, 8 tingkat keabuan, dengan distribusi sebagai berikut :

Page 8: Budi Modifikasi Histogram Budi

Fungsi Transformasi

Here comes your footer Page 8

Page 9: Budi Modifikasi Histogram Budi

Here comes your footer Page 9

Pembulatan

Page 10: Budi Modifikasi Histogram Budi

Here comes your footer Page 10

Pemetaan

Page 11: Budi Modifikasi Histogram Budi

Here comes your footer Page 11

Hasil Rangkuman Transformasi

Page 12: Budi Modifikasi Histogram Budi

Here comes your footer Page 12

Histogram dengan Distribusi Seragam

Page 13: Budi Modifikasi Histogram Budi

Here comes your footer Page 13

CONTOH

Citra 64x64 pixel, 8 tingkat keabuan, dengan distribusi sebagai berikut :

Page 14: Budi Modifikasi Histogram Budi

Here comes your footer Page 14

Histogram yang Diinginkan

Page 15: Budi Modifikasi Histogram Budi

Here comes your footer Page 15

Langkah 1 : Ekualisasi Histogram

Page 16: Budi Modifikasi Histogram Budi

Here comes your footer Page 16

Langkah 2 : Fungsi Transformasi

Page 17: Budi Modifikasi Histogram Budi

Here comes your footer Page 17

Hasil Fungsi Transformasi

Page 18: Budi Modifikasi Histogram Budi

Here comes your footer Page 18

Langkah 3 : Terapkan Inverse Pada Level Histogram Equalisasi

NB; G(zk) = Vk

Page 19: Budi Modifikasi Histogram Budi

Here comes your footer Page 19

Langkah 4 : Pemetaan dari rk ke zk

Page 20: Budi Modifikasi Histogram Budi

Here comes your footer Page 20

Histogram Hasil

Page 21: Budi Modifikasi Histogram Budi

Operasi Berbasis Bingkai / Operasi Aritmatika Citra

Proses pengolahan citra dengan memanfaatkan operator aritmatika atau operator logika (boolean)terhadap dua atau lebih citra input

Proses aritmatika citra diterapkan dengan melakukan pengolahan pixel per pixel, sehingga proses ini sebaiknya dilakukan terhadap citra dengan ukuran dan resolusi yang sama

Here comes your footer Page 21

Page 22: Budi Modifikasi Histogram Budi

Operasi Aritmatika pada citra

Penjumlahan, pengurangan

Operator Boolean

Bitshift Operators

Here comes your footer Page 22

Page 23: Budi Modifikasi Histogram Budi

Penjumlahan

Here comes your footer Page 23

Pixel citra hasil merupakan hasil penjumlahan nilai pixel pada citra pertama dengan nilai pixel pada citra kedua

Catatan : w1 + w2 = 1

),(),(),( 21 yxfyxfyxg

),(.),(.),( 2211 yxfwyxfwyxg

Page 24: Budi Modifikasi Histogram Budi

Pengurangan

Here comes your footer Page 24

Mencari beda antara 2 citra berurutan

Bagian yang tidak bergerak 0

Bagian yang bergerak ≠ 0

),(),(),( 21 yxfyxfyxg

Page 25: Budi Modifikasi Histogram Budi

Operator Boolean

Disebut juga operasi logika

Hanya dapat dilakukan pada citra biner

Here comes your footer Page 25

Page 26: Budi Modifikasi Histogram Budi

Here comes your footer Page 26

Page 27: Budi Modifikasi Histogram Budi

Bitshift Operator

Pergeseran deret bit pada pixel ke arah kanan atau kiri sebesar n bit

Here comes your footer Page 27

nyxfyxgnrightbitshift 2),(),()(

nyxfyxgnleftbitshift 2),(),()(

Page 28: Budi Modifikasi Histogram Budi

Operasi Spasial (Filtering)

Pentapisan pada pengolahan citra biasa disebut dengan pentapisan spasial (spatial filtering)

Pada proses pentapisan, nilai pixel baru umumnya dihitung berdasarkan pixel tetangga

Cara perhitungan nilai pixel baru tersebut dapat dikelompokkan menjadi dua :

Nilai pixel baru diperoleh melalui kombinasi linier pixel tetangga (tapis linier)

Nilai pixel baru diperoleh langsung dari salah satu nilai pixel tetangga (tapis non linier)

Here comes your footer Page 28

Page 29: Budi Modifikasi Histogram Budi

Kernel

Proses penapisan spasial tidak dapat dilepaskan dari teori kernel (mask) dan konvolusi

Kernel adalah matrik yang umumnya berukuran kecil dengan elemen-elemennya berupa bilangan

Kernel disebut juga dengan convolution window, tapis (filter), template, mask, sliding window, structuring element

Ukuran dapat berbeda-beda, seperti 2 x 2, 3 x 3, 5 x 5, dsb

Elemen-elemen kernel disebut juga bobot (weight) merupakan bilangan-bilangan yang membentuk pola-pola tertentu

Here comes your footer Page 29

Page 30: Budi Modifikasi Histogram Budi

Konvolusi

Here comes your footer Page 30

Page 31: Budi Modifikasi Histogram Budi

Contoh

Citra f(x,y) berukuran 5 x 5 dengan kernel 3 x 3

Here comes your footer Page 31

Page 32: Budi Modifikasi Histogram Budi

Masalah Pixel Pinggir

Here comes your footer Page 32

Page 33: Budi Modifikasi Histogram Budi

Solusi

Piksel pinggir diabaikan, tidak dikonvolusi

Duplikasi elemen citra, elemen kolom ke-1 disalin ke kolom M+1, begitu juga sebaliknya lalu konvolusikan

Elemen yang ditandai dengan (?) diasumsikan bernilai 0 atau konstanta yang lain sehingga konvolusi piksel pinggir dapat dilakukan

Konvolusi piksel pinggir tidak memperlihatkan efek yang kasat mata

Here comes your footer Page 33

Page 34: Budi Modifikasi Histogram Budi

Citra Negatif

>> asli=imread('rice.png');

>> k=max(max(asli));

>> neg=k-asli;

>> subplot(1,2,1)

>> imshow(asli)

>> subplot(1,2,2)

>> imshow(neg)