Anda di halaman 1dari 102

Image Acquisition

Alvian Bastian, S.ST., M.Sc.


Introduction
• Gambar digital diperoleh melalui kamera menggunakan array sensor foto. Sensor
dibuat dari semikonduktor dan dapat berupa perangkat yang dapat dilengkapi
muatan atau perangkat semikonduktor oksida logam komplementer.
• Elemen-elemen detektor foto dalam array dibuat dengan ukuran tertentu yang
menentukan resolusi gambar yang dapat dicapai dengan kamera tersebut.
• Untuk mengambil gambar berwarna, kamera digital harus memiliki rakitan prisma
atau array filter warna (CFA (color filter array)).
• Rakitan prisma membagi cahaya masuk tiga arah, dan filter optik digunakan
untuk memisahkan cahaya yang terbagi menjadi komponen spektral merah, hijau,
dan biru.
• Setiap komponen warna menjadi unsur utama dalam susunan sensor foto untuk
mengambil gambar yang sesuai. Ketiga komponen gambar memiliki ukuran yang
sama
Introduction
• Tiga sensor foto harus disejajarkan dengan sempurna sehingga ketiga gambar
terdaftar.
• Kamera dengan rakitan prisma yang agak tebal dan digunakan dalam penelitian ilmiah
dan atau aplikasi high-end. Kamera konsumen menggunakan chip tunggal dan CFA
untuk mengambil gambar berwarna tanpa menggunakan rakitan prisma.
• CFA yang umum digunakan adalah array filter Bayer. CFA dilapisi pada array sensor
selama pembuatan chip dan menggunakan filter warna bergantian, satu filter per
piksel.
• Pengaturan ini menghasilkan gambar tiga komponen dengan resolusi spasial penuh
untuk komponen hijau dan setengah resolusi untuk masing-masing komponen merah
dan biru.
• Keuntungannya, tentu saja, adalah ukuran kamera yang kecil dan ringkas. Kerugiannya
adalah gambar yang dihasilkan telah mengurangi resolusi spasial dan warna.
Introduction
• Apakah kamera tiga chip atau satu chip, seseorang harus dapat
menentukan secara analitis bagaimana resolusi spasial terkait dengan
ukuran piksel gambar.
• Seseorang harus dapat menentukan distorsi dalam gambar kontinu
yang direproduksi atau ditampilkan sebagai hasil dari pengambilan
sampel spasial dan kuantisasi yang digunakan.
Sampling and Quantization
Sampling:
• Proses digitasi nilai-nilai koordinat disebut Sampling.
• Gambar kontinu f(x,y) biasanya kira-kira sama dengan jarak sampel
yang disusun dalam bentuk array NxM dimana setiap elemen array
adalah kuantitas diskrit.

• Rate sampling dari proses digitizer menentukan resolusi spasial dari


gambar digital.
• Semakin halus pengambilan sampel (mis. Meningkatkan M dan N),
semakin baik perkiraan fungsi gambar kontinu f(x,y).
Sampling and Quantization
Quantization
• Proses digitalisasi nilai amplitudo disebut kuantisasi.
• Besarnya gambar sampel dinyatakan sebagai nilai digital dalam
Image Processing.
• Tidak ada level kuantisasi yang cukup tinggi untuk persepsi manusia
tentang detail halus dari gambar.
• Sebagian besar perangkat IP digital menggunakan kuantisasi ke
dalam interval k yang sama.
• Jika b-bit digunakan,
Jumlah tingkat kuantisasi = k = 2b
• 8 bit/piksel digunakan secara umum.
Sampling and Quantization
• Digunakan untuk mengkonversi gambar analog ke gambar digital.

• Sampling -> digitizing of coordinate


• Quantization -> digitizing of amplitude
(3,3)

3-bit quantization
000
analog 001
010
011
100
101
110
111
Sampling and Quantization
Black-high intensity
Gray scale: 0-255

244 255

Black-low intensity

Analog Image Digital Image


Contoh Soal
Berikut merupakan sinyal analog:
X(t) = 3 cos 200𝜋t + 5 sin 600𝜋t + 7 cos 1200𝜋t
1. Berapa frekuensi Nyquist untuk sinyal analog
di atas ?
2. Bila dipakai frekuensi pencuplikan 500 Hz,
bagaimana sinyal waktu diskrit yang
diperoleh ?
Jawab Soal
1. Sinyal analog dapat dinyatakan dengan:
x(t) = 3 cos 2𝜋(100)t + 5 sin 2𝜋(300)t + 7 cos
2𝜋(600)t
Frekuensi maksimum untuk sinyal analog di
atas adalah 600 Hz, dan frekuensi Nyquist
adalah 2 x 600 Hz = 1200 Hz.
Jawab Soal
2. Bila dipakai frekuensi pencuplikan 500 Hz,
maka sinyal waktu diskrit yang diperoleh
adalah:
x(n) = x(nT) = x(n/Fs)
x(n) = 3 cos 2𝜋(100/500)n + 5 sin
2𝜋(300/500)n + 7 cos 2𝜋(600/500)n
x(n) = 3 cos 2𝜋(1/5)n + 5 sin 2𝜋(3/5)n + 7 cos
2𝜋(6/5)n
Jawab Soal
• Sinyal yang melanggar Kriteria Nyquist, harus
direvisi.
• x(n) = 3 cos 2𝜋(1/5)n + 5 sin 2𝜋(1-2/5)n + 7 cos
2𝜋(1+1/5)n
x(n) = 3 cos 2𝜋(1/5)n + 5 sin 2𝜋(-2/5)n + 7 cos
2𝜋(1/5)n
x(n) = 10 cos 2𝜋(1/5)n – 5 sin 2𝜋(2/5)n
Jawab Soal
Sampling a Continuous Image
• Sebuah gambar 𝑓 𝑥, 𝑦 , −∞ ≤ 𝑥, 𝑦 ≤ ∞ yang akan diindra oleh array
sensor foto merupakan distribusi intensitas cahaya kontinu dalam dua
koordinat spasial kontinu x dan y.
• Meskipun gambar praktis berukuran terbatas, kita asumsikan disini
bahwa tingkat gambar tak terbatas lebih umum.
• Untuk memperoleh citra digital dari f(x,y) :
a. Harus didiskritasi atau disampel dalam koordinat spasial, dan
b. Nilai sampel harus dikuantisasi dan direpresentasikan dalam
bentuk digital, pada gambar 2.1.
• Proses diskritasi f(x,y) dalam dua koordinat spasial disebut sampling
dan proses mewakili nilai sampel dalam bentuk digital dikenal sebagai
konversi analog ke digital (analog-to-digital conversion)
Sampling a Continuous Image
• Gambar sampling dilambangkan dengan
𝑓𝑓 𝑥, 𝑦 , −∞ ≤ 𝑥, 𝑦 ≤ ∞ dan dinyatakan sebagai:

• Dimana −∞ ≤ 𝑚, 𝑛 ≤ ∞ adalah bilangan bulat dan


∆𝑥 dan ∆y adalah jarak antara sampel dalam
masing-masing dua dimensi spasial. Karena jarak
konstan, proses pengambilan sampling dikenal
sebagai sampling seragam.
Sampling a Continuous Image
• Selanjutnya, Persamaan (2.1) mewakili pengambilan sampel gambar dengan array
impuls dan disebut sampling ideal atau impuls.
• Dalam pengambilan sampel gambar yang ideal, lebar sampel mendekati nol.
• Pengambilan sampel yang ditunjukkan pada Persamaan (2.1) dapat diartikan sebagai
mengalikan f(x,y) dengan fungsi pengambilan sampel s(x,y) yang mana untuk
pengambilan sampel yang ideal yang merupakan array impuls yang ditempatkan
secara seragam pada bilangan bulat integer ∆𝑥 dan ∆y dalam masing-masing dua
koordinat spasial.
• Gambar 2.2 menunjukkan berbagai impuls. Fungsi impuls atau Dirac Delta dalam
domain spasial dua dimensi (2D) didefenisikan sebagai:
Sampling a Continuous Image
Sampling a Continuous Image
• Persamaan (2.2) menyiratkan bahwa Fungsi Dirac Delta
memiliki satuan luas, sedangkan lebarnya mendekati nol.
Perhatikan bahwa fungsi pengambilan sampel yang ideal
dapat dinyatakan sebagai:

• Dengan demikian sampel gambar fs(x,y) dapat ditulis


sebagai:
Sampling a Continuous Image
• Agar kita dapat memulihkan gambar kontinu asli
f(x,y) dari gambar sampel fs(x,y), kita perlu
menentukan jarak maksimum ∆𝑥 dan ∆𝑦.
• Ini dapat dilakukan dengan mudah menggunakan
Transformasi Fourier. Jadi misalkan 𝐹 𝜔𝑥 , 𝜔𝑦
didefenisikan sebagai:
Sampling a Continuous Image
• Transformasi Fourier dari fungsi pengambilan sampel 2D dalam Persamaan
(2.3) dapat ditunjukkan sebagai array impuls 2D lainnya dan diberikan
oleh:

• Dimana 𝜔𝑥 𝑆 = 2𝜋/∆𝑥 dan 𝜔𝑦 𝑆 = 2𝜋/∆𝑦 adalah frekuensi sampling


dalam radian per satuan jarak dalam dimensi spasial masing-masing.
• Karena gambar sampel adalah produk dari gambar kontinu dan fungsi
pengambilan sampel seperti pada Persamaan (2.4), transformasi 2D
fourier dari gambar sampel adalah konvolusi dari transformasi fourier yang
sesuai. Oleh karena itu, kita memiliki transformasi fourier 𝐹𝐹(𝜔𝑥 , 𝜔𝑦 ) dari
fs(x,y) yang dinyatakan sebagai:
Sampling a Continuous Image
• Dalam Persamaan (2.7), ⊗ merepresentasikan konvolusi 2D,
Persamaan (2.7) dapat disederhanakan dan ditulis sebagai:

• Dari Persamaan (2.8), kita melihat bahwa transformasi Fourier


dari gambar sampel idealnya diperoleh dengan:
a. Mereplikasi transformasi fourier dari gambar kontinu pada
kelipatan frekuensi sampling dalam dua dimensi.
b. Menskalakan replika dengan 1/(∆𝑥∆𝑦), dan
c. Menambahkan fungsi yang dihasilkan.
Sampling a Continuous Image
• Karena transformasi fourier dari gambar sampel bersifat kontinu, ini
memungkinkan dengan memulihkan gambar kontinu asli dari gambar
sampel dengan memfilter gambar sampel dengan filter linear yang
sesuai.
• Jika gambar kontinu adalah lowpass, maka pemulihan yang tepat
dimungkinkan oleh filter lowpass yang ideal, asalkan gambar kontinu
bandwidth-nya dibatasi (band limited) untuk menyatakan 𝜔𝑥 𝑠/2 dan
𝜔𝑦 𝑠/2 di masing-masing dua frekuensi spasial. Artinya, jika:
Sampling a Continuous Image
• Kemudian f(x,y) dapat dipulihkan dari gambar sampel dengan
memfilternya dengan filter lowpass yang ideal dengan frekuensi cutoff
𝜔𝑥 𝑐 = 𝜔𝑦 𝑆/2 di masing-masing dua sumbu frekuensi.
• Ini dimungkinkan karena transformasi fourier dari gambar sampel akan
menjadi tumpang tindih dan akan identik dengan gambar kontinu
pada wilayah yang ditentukan pada persamaan (2.9).
• Untuk mengetahui ini, lowpass filter ideal 𝐻(𝜔𝑥 , 𝜔𝑦 ) dapat ditentukan
oleh
Sampling a Continuous Image
• Kemudian respon 𝐹(𝜔𝑥 , 𝜔𝑦 ) dari lowpass filter
ideal untuk gambar sampel yang memiliki
transformasi fourier, yang merupakan produk dari
𝐻(𝜔𝑥 , 𝜔𝑦 ) dan 𝐹𝐹(𝜔𝑥 , 𝜔𝑦 dan dinyatakan dengan:

• Persamaan (2.11) menunjukkan bahwa gambar


yang direkonstruksi merupakan replika dari gambar
kontinu asli.
Soal
• Tentukan DFT (Discreate Fourier Transform)
untuk f(x)={0,1,2,1}
Jawaban Soal
𝑁−1
• 𝐹 𝑘 = ∑𝑥=0 𝑓(𝑥)𝑒 −𝑗𝑗𝜋𝜋𝜋/𝑁 ; 𝑘 = 0,1, … , 𝑁 − 1
karena N=4, maka k = 0,1,2,3
• untuk k=0
𝐹 0 = 𝑓 0 𝑒 −0 + 𝑓 1 𝑒 −0 + 𝑓 2 𝑒 −0 + 𝑓(3)𝑒 −0
= 𝑓 0 + 𝑓 1 + 𝑓 2 + 𝑓(3)
= 0+1+2+1 = 4
F(0) = 4
Jawaban Soal
• Untuk k=1
𝑗 2𝜋 1 0 𝑗 2𝜋 1 1 𝑗 2𝜋 1 2
− − −
𝐹 1 =𝑓 0 𝑒 4 +𝑓 1 𝑒 4 +𝑓 2 𝑒 4
𝑗 2𝜋 1 3

+ 𝑓(3)𝑒 4
𝑗𝜋 𝑗𝑗𝜋
−0 − −𝑗𝜋 −
=𝑓 0 𝑒 +𝑓 1 𝑒 2 +𝑓 2 𝑒 +𝑓 3 𝑒 2
𝜋 𝜋 3𝜋 3𝜋
= 0 + 1 𝑐𝑐𝑐 − 𝑗𝑗𝑗𝑗 + 2 𝑐𝑐𝑐𝜋 − 𝑗𝑗𝑗𝑗𝑗 + 1 𝑐𝑐𝑐 − 𝑗𝑗𝑗𝑗
2 2 2 2
= 0 + 1 0 − 𝑗 + 2 −1 + 1 0 + 𝑗
=0–j–2+j
= -2
F(1) = -2
Jawaban Soal
• Untuk k=2
𝐹 2 = 𝑓 0 𝑒 −0 + 𝑓 1 𝑒 −𝑗𝜋 + 𝑓 2 𝑒 −𝑗𝑗𝜋 + 𝑓(3)𝑒 −𝑗𝑗𝜋
= 0 + 1 𝑐𝑐𝑐𝜋 − 𝑗𝑗𝑗𝑗𝑗 + 2 𝑐𝑐𝑐𝑐𝑐 − 𝑗𝑗𝑗𝑗 2𝜋
+ 1(𝑐𝑐𝑐𝑐𝑐 − 𝑗𝑗𝑗𝑗 3𝜋)
= 0 + 1(-1) + 2(1) + 1(-1)
=0
F(2) = 0
Jawaban Soal
• Untuk k=3
𝑗𝑗𝜋

𝐹 3 = 𝑓 0 𝑒 −0 + 𝑓 1 𝑒 2 + 𝑓 2 𝑒 −𝑗𝑗𝜋 + 𝑓(3)𝑒 −9𝜋/2
3𝜋 3𝜋
= 0 + 1 𝑐𝑐𝑐 − 𝑗𝑗𝑗𝑗 + 2 𝑐𝑐𝑐𝑐𝜋 − 𝑗𝑗𝑗𝑗𝑗𝑗
2 2
9𝜋 9𝜋
+ 1 𝑐𝑐𝑐 − 𝑗𝑗𝑗𝑗
2 2
= 0 + 1(0+j) + 2(-1) + 1(0-j)
= 0 + j -2 – j = -2
F(3) = -2
Jawaban Soal
• Jadi, F(k) = {4, -2, 0, -2}
Filter Anti Aliasing
• Kesalahan pemilihan frekuensi sampling
jarang terjadi.
• Yang sering terjadi adalah aliasing akibat noise
frekuensi tinggi
• Untuk mengantisipasi, diperlukan filter anti
aliasing
Filter Anti Aliasing
• Adalah filter analog tipe low pass
• Untuk memastikan bahwa sinyal dengan
frekuensi terlalu tinggi akan ikut di-sampling
Steps for Filtering in Frequency Domain
1. f(x,y), dimension MxN
2. fp(x,y), dimension PxQ, P=2M dan Q=2N
3. fp(x,y) x (-1)x+y
4. H(u,v) -> filter, f(x,y)
G(u,v) = H(u,v) x F(x,y)
5. g(x,y)=𝜏 −1 𝐺(𝑢, 𝑣) (−1)𝑥+𝑦
Filters in Frequency Domain
• Biasa digunakan untuk memperhalus dan mempertajam gambar dengan menghapus very high or low
frequency components.
• Filter -> Low-Pass Filtering dan High-Pass Filtering
• Low-Pass Filtering :
1. Remove High Frequency Components dan Keep Low Frequency Components.
2. Memperhalus gambar.
3. Remove Noise.
• High-Pass Filtering :
1. Remove Low Frequency Components dan Keep High Frequency Components.
2. Mempertajam gambar.
3. Tanpa background.

Low-Pass Filtering (LPF) High-Pass Filtering (HPF)


1. Ideal LPF 1. Ideal HPF
2. Butterworth LPF 2. Butterworth HPF
3. Gaussian LPF 3. Gaussian HPF
Filters in Frequency Domain
Ideal LPF: Ideal HPF:
- Transformation Function: 𝐻𝐻 = 1 − 𝐻𝐻
𝐻𝐿 𝑢, 𝑣 = 1; 𝐷 𝑢, 𝑣 ≤ 𝐷0 = 1 ; 𝐷 𝑢, 𝑣 > 𝐷0
0; 𝐷(𝑢, 𝑣) > 𝐷0 0 ; 𝐷(𝑢, 𝑣) ≤ 𝐷0
Dimana:
D0 = non-negative integer
1/2
𝐷 𝑢, 𝑣 = (𝑢 − 𝑀|2 )2 +(𝑣 − 𝑁|2 )2

Butterworth LPF: Butterworth HPF:


Transformation Function (TF): Transformation Function (TF): 1-HL
1 1
𝐻𝐿 𝑢, 𝑣 = 𝑇𝑇 = 1 −
1 + 𝐷(𝑢, 𝑣)|𝐷0 2𝑛 1+𝑥
1
=
1
1+
𝐷(𝑢, 𝑣)|𝐷0 2𝑛
Filters in Frequency Domain
Gaussian LPF:
TF:
2 2
𝐻𝐿 𝑢, 𝑣 = 𝑒 −𝐷 (𝑢,𝑣)|2𝐷0

Gaussian HPF:
TF:
𝐻𝐻 𝑢, 𝑣 = 1 − 𝑒 −𝐷
2 𝑢,𝑣 |2𝐷0 2
Soal
• Perhatikan titik spasial 3x3 yang rata-rata
empat tetangga terdekat dari suatu titik (x, y)
tetapi tidak termasuk titik itu sendiri dari rata-
rata. Temukan filter yang setara, H (u,v) pada
frekuensi domain.
Jawaban Soal
FT
• h(x,y) H(u,v)
konversi h(x,y) pada spatial domain ke H(u,v)
pada frekuensi domain.
IFT
• h(x,y) H(u,v)
IFT (Invers Fourier Transform).
Jawaban Soal
titik spasial 3x3
y-1 y y+1 Rata-rata spasial:
1
x+1 𝑔 𝑥, 𝑦 = �𝑓 𝑥 + 1 , 𝑦 + 𝑓 𝑥 − 1 , 𝑦 + 𝑓 𝑥, 𝑦 + 1
4
x + 𝑓(𝑥, 𝑦 − 1 ) �
x-1
1
𝐺 𝑢, 𝑣 = [𝐹 𝑥 + 1, 𝑦 + 𝐹 𝑥 − 1, 𝑦 + 𝐹 𝑥, 𝑦 + 1 + 𝐹(𝑥, 𝑦
4
𝐺 𝑢, 𝑣 = 𝐻 𝑢, 𝑣 × 𝐹 𝑢, 𝑣 − 1)]
=
1
𝐹 𝐾 = � 𝑓(𝑛)𝑒 −𝑗𝑗𝜋𝜋𝜋/𝑚 𝑒 +𝑗𝑗𝜋𝜋/𝑀 + 𝑒 −𝑗𝑗𝜋𝜋/𝑀 + 𝑒 +𝑗𝑗𝜋𝜋/𝑁 + 𝑒 −𝑗𝑗𝜋𝜋/𝑁 F(u,v)
4

1 +𝑗𝑗𝜋𝜋/𝑀
𝐻 𝑢, 𝑣 = 𝑒 + 𝑒 −𝑗𝑗𝜋𝜋/𝑀 + 𝑒 +𝑗𝑗𝜋𝜋/𝑁 + 𝑒 −𝑗𝑗𝜋𝜋/𝑁
4
Aliasing Distortion
• Teorema pengambilan sampel menjamin pemulihan dari gambar kontinu,
yang merupakan lowpass dan band terbatas pada frekuensi 𝐹𝑥𝑥 ⁄2 dan 𝐹𝑦𝑆 ⁄2
dari sampel yang diambil pada sampel 𝐹𝑥𝑥 dan 𝐹𝑦𝑆 per satuan jarak.
• Jika rate sampling dibawah rate Nyquist yaitu Fxs dan Fys, maka gambar
kontinu tidak dapat dipulihkan dengan tepat dari sampelnya dengan
memfilter dan gambar yang direkonstruksi mengalami distorsi yang dikenal
sebagai distorsi aliasing (aliasing distortion).
• Gambar 2.3a menunjukkan transformasi fourier dari gambar lowpass kontinu
dengan frekuensi cutoff 𝐹𝑥𝐶 dan 𝐹𝑦𝐶 dalam dua arah spasial.
• Gambar 2.3b menunjukkan transformasi fourier dari gambar sampel, dimana
frekuensi sampling sama dengan masing-masing dua kali frekuensi cutoff.
Aliasing Distortion
Ilustrasi domain Fourier dari distorsi
aliasing karena pengambilan sampel
gambar kontinu:
a. Transformasi Fourier dari gambar
lowpass kontinu.
b. Transformasi Fourier dari gambar
sampel dengan frekuensi sampling
yang persis sama dengan frekuensi
Nyquist masing-masing.
c. Transformasi Fourier dari gambar
sampel dengan undersampling
d. Transformasi Fourier dari gambar
Gambar 2.3
sampel untuk oversampling.
Aliasing Distortion
• Terlihat dari Gambar 2.3b bahwa tidak ada tumpang tindih dari
replika dan bahwa transformasi fourier dari gambar sampel identik
dengan gambar kontinu pada wilayah
−𝑓𝑥𝑥 , 𝑓𝑥𝑥 × −𝑓𝑦𝑦 , 𝑓𝑦𝑦 ,dan oleh karena itu dapat dipulihkan
dengan memfilter gambar sampel dengan filter lowpass yang ideal
dengan frekuensi cutoff sama dengan setengah frekuensi sampling.
• Ketika rate sampling kurang dari rate Nyquist, replika tumpang tindih
dan bagian dari transformasi fourier di wilayah yang ditentukan oleh
−𝑓𝑥𝑥 , 𝑓𝑥𝑥 × −𝑓𝑦𝑦 , 𝑓𝑦𝑦 tidak lagi sesuai dengan gambar
kontinu, dan oleh karena itu pemulihan tidak mungkin pada Gambar
2.3c.
Aliasing Distortion
• Dalam hal ini, frekuensi diatas 𝑓𝑥𝑥 /2 dan 𝑓𝑦𝑆 /2
sendiri sebagai frekuensi rendah dengan melipat
dan karenanya dinamakan distorsi aliasing.
• Frekuensi 𝑓𝑥𝑥 /2 dan 𝑓𝑥𝑥 /2 disebut fold over
frequencies. Ketika rate sampling lebih besar dari
rate Nyquist yang sesuai, replika tidak tumpang
tindih dan tidak ada distorsi aliasing pada Gambar
2.3d.
Contoh 2.1
• Perhatikan gambar grayscale, kurangi sampelnya
dengan faktor M, dan rekonstruksi gambar
ukuran penuh dari gambar downsampled.
Sekarang, prefilter gambar asli dengan filter
lowpass dan ulangi downsampling dan
rekonstruksi seperti sebelumnya.
Diskusikan efeknya, dan pilih nilai 4 untuk M.
Solusi 2.1
• Mari kita lihat gambar Barbara dengan ukuran 661x628 piksel. Gambar 2.4a
adalah gambar asli downsampled dengan 4 tanpa prefiltering.
• Gambar yang direkonstruksi ditunjukkan pada Gambar 2.4b. Gambar telah
dipangkas (crop) sehingga memiliki ukuran yang dapat dikelola.
• Kita dapat dengan jelas melihat distorsi aliasing pada kedua figur – pola pada
kain.
• Sekarang kita memfilter gambar asli dengan Gaussian LPF ukuran 7x7 dan
menurunkannya (downsampled) seperti sebelumnya.
• Gambar 2.4 c,d sesuai dengan gambar downsampled dan direkonstruksi
dengan prefiltering. Kita tidak melihat distorsi aliasing pada gambar
downsampled dan telah direkonstruksi ketika lowpass prefiltering diterapkan
sebelum downsampling.
• Namun, gambar yang direkonstruksi buram (blurry), yang disebabkan oleh
lowpass filtering.
Solusi 2.1
% Example2_1.m
% Resamples an original image to study the
% effects of undersampling
%
A = imread('barbara.tif');
[Height,Width,Depth] = size(A);
if Depth == 1
f = A;
else
f = A(:,:,1);
end
% downsample by a factor of M, no prefiltering
M = 4;
f1 = f(1:M:Height,1:M:Width);
figure,imshow(f1), title(['Downsampled by ' num2str(M) ':No prefiltering'])
f1 = imresize(f1,[Height,Width],'bicubic');%reconstruct to full size
figure,imshow(f1(60:275,302:585))
title('Reconstructed from downsampled image: No prefiltering')
%
% downsample by a factor of M, after prefiltering
% use a gaussian lowpass filter
f = imfilter(f,fspecial('gaussian',7,2.5),'symmetric','same');
f1 = f(1:M:Height,1:M:Width);
figure,imshow(f1), title(['Downsampled by ' num2str(M) ' after prefiltering'])
f1 = imresize(f1,[Height,Width],'bicubic');
figure,imshow(f1(60:275,302:585))
title('Reconstructed from downsampled image: with prefiltering')
Solusi 2.1
Nonideal Sampling
• Perangkat pengambilan sampel praktis menggunakan pulsa persegi
panjang dengan lebar terbatas. Artinya, fungsi sampling adalah array
pulsa persegi panjang daripada impuls. Oleh karena itu, fungsi
pengambilan sampel dapat ditulis sebagai:
• Dimana p(x,y) merupakan pulsa persegi panjang dengan batas
terbatas dan luas unit. Kemudian proses pengambilan sampel dengan
fungsi Dirac delta.
• Efek bersih dari pengambilan sampel dengan array pulsa lebar-
terbatas adalah setara dengan prefiltering gambar dengan lowpass
filter yang sesuai dengan pulsa p(x,y) diikuti oleh sampling ideal.
Nonideal Sampling
• Lowpass filter akan mengaburkan gambar. Ini
merupakan distorsi tambahan ke distorsi
aliasing yang kita bahas sebelumnya. Untuk
menggambarkan efek pengambilan sampel
nonideal terhadap gambar sampel, mari kita
lihat contoh 2.2.
Contoh 2.2
• Perhatikan gambar yang ditunjukkan pada Gambar 2.5a, dimana gambar adalah array persegi panjang
dengan ukuran 64 x 64 piksel.
• Sampel ini diambil dengan pulsa persegi panjang berukuran 32 x 32 piksel seperti yang ditunjukkan pada
Gambar 2.5b.
• Gambar sampel ditunjukkan pada Gambar 2.5c. Kita dapat dengan jelas melihat efek smear dari
pengambilan sampel dengan pulsa persegi panjang dengan lebar terbatas.
• Transformasi Fourier 2D dari gambar input, pulsa sampling, dan gambar sampel ditunjukkan masing-masing
dalam Gambar 2.5d-f.
• Karena efek smear setara dengan lowpass filtering, transformasi Fourier dari gambar sampel sedikit lebih
sempit daripada gambar input.
• Transformasi Fourier dari impuls ideal dan Transformasi Fourier dari gambar sampel yang sesuai ditunjukkan
masing-masing dalam Gambar 2.5 g,h.
• Berbeda dengan pengambilan sampel dengan pulsa dengan lebar terbatas, kita melihat bahwa Transformasi
Fourier dari gambar sampel idealnya sama dengan transformasi dari gambar input.
• Akhirnya, gambar yang direkonstruksi menggunakan lowpass filter ideal yang ditunjukkan pada Gambar 2.5i.
Ini identik dengan gambar sampel karena kita menggunakan pengambilan sampel dengan pulsa terbatas.
Nonideal Sampling
Gambar 2.5. Efek nonideal sampling: (a)
Gambar 64x64 BW, (b) Pengambilan sampel
persegi panjang berukuran 32 x 32 piksel, (c)
Gambar Sampel, (d) Transformasi Fourier 2D
dari (a), (e) Transformasi Fourier 2D dari (b), (f)
Transformasi Fourier 2D dari gambar sampel di
(b), (g) Transformasi Fourier 2D dari impuls yang
ideal, (h) Transformasi Fourier 2D dari (a)
sampel dengan impuls, dan (i) gambar dalam (c)
yang diperoleh dengan lowpass filter yang ideal.
Contoh 2.2
% Example2 2.m
% Example showing the effect of image sampling with a
% finite width pulse
% Two cases are possible: ’delta’ and ’pulse’
% delta corresponds to impulse sampling and pulse
% to sampling with finite width pulse.
% image array size is NxN pixels
% actual image area to be sampled is MxM
% TxT is the sampling pulse area
samplingType = 'pulse'; % ’delta’ or ’pulse’
N = 256; % array size is NxN
f = zeros(N,N); % image to be sampled
M = 32; % image pulse width
M1 = N/2 - M + 1; % image beginning point
M2 = N/2+M; % image end point
f(M1:M2,M1:M2) = 1; % test image has a value 1
%
Lanjutan code di slide berikutnya…!!!
Contoh 2.2
p = zeros(N,N); % sampling rectangular pulse
if strcmpi(samplingType,'delta')
p(128,128) = 1;
end
if strcmpi(samplingType,'pulse')
T = M/2; % sampling pulse width
T1 = N/2 - T + 1; % sampling pulse beginning point
T2 = N/2+T; % sampling pulse end point
p(T1:T2,T1:T2) = 1; % sampling pulse; width = 1/2 of image
end
fs = conv2(f,p,'same'); % convolution of image & pulse
figure,imshow(f,[]),title('Input Image')
figure,imshow(p,[]), title('Sampling Pulse')
figure,imshow(fs,[]),title('Sampled Image')
%

Lanjutan code di slide berikutnya…!!!


Contoh 2.2
figure,imshow(log10(1+5.5*abs(fftshift(fft2(f)))),[])
title('Fourier Transform of input image')
if strcmpi(samplingType,'delta')
figure,imshow(log10(1+1.05*abs(fftshift(fft2(p)))),[])
title('Fourier Transform of Delta Function')
end
if strcmpi(samplingType,'pulse')
figure,imshow(log10(1+5.5*abs(fftshift(fft2(p)))),[])
title('Fourier Transform of rectangular pulse')
end
%
Fs = fftshift(fft2(fs));
figure,imshow(log10(1+5.5*abs(Fs)),[])
title('Fourier Transform of sampled image')
% h is the 2D reconstruction filter
%h = (sinc(0.1*pi*(-128:127)))’ * sinc(0.1*pi*(-128:127));
h = (sinc(0.2*pi*(-128:127)))' * sinc(0.2*pi*(-128:127));
H = fft2(h);
figure,imshow(ifftshift(ifft2(fft2(fs).*H,'symmetric')),[])
title('Reconstructed image')
Nonrectangular Sampling Grids
• Sejauh ini pengambilan sampel gambar pada kotak persegi panjang. Ini merupakan struktur grid
sampling yang umum digunakan karena banyak sistem tampilan seperti TV menggunakan raster
scanning, yaitu scanning dari kiri ke kanan dan atas ke bawah. Juga, sebagian besar kamera digital
memiliki sensor yang dibangun dalam susunan kotak persegi panjang. Namun, dimungkinkan
untuk menggunakan nonrectangular grids, seperti sampling hexagonal grid, untuk memperoleh
gambar digital.
• Keuntungan menggunakan sampling hexagonal grid adalah gambar yang diperoleh memiliki
13.4% lebih sedikit data daripada yang diperoleh dengan menggunakan sampel rectangular grid.
• Juga telah ditemukan bahwa deteksi tepi lebih efisien dengan gambar sampel hexagonal.
Pengambilan sampel hexagonal digunakan secara luas dalam machine vision dan biomedical
imaging.
• Meskipun standar kompresi seperti Moving Picture Experts Group (MPEG) menggunakan
struktur rectangular grid untuk pengkodean gambar diam dan bergerak terutama untuk
menggunakan grid heksagonal untuk tujuan tersebut untuk akurasi yang lebih baik dalam
estimasi gerakan dan lebih tinggi rasio kompresinya.
Nonrectangular Sampling Grids
• Mari kita jelaskan secara singkat disini proses konversi piksel
dari sampel rectangular ke heksagonal grid dan sebaliknya
serta menggambarkan proses tersebut dengan beberapa
contoh.
• Himpunan titik dalam bidang (n1, n2) ditransformasikan
secara linear menjadi himpunan titik (t1, t2) menggunakan
transformasi
Nonrectangular Sampling Grids
• Dalam Persamaan (2.22), vektor 𝑣1 = 𝑣11 𝑣21 ′
dan 𝑣2 = 𝑣12 𝑣22 ′ adalah bebas linear. Agar
himpunan titik (t1,t2) berada pada sampel
hexagonal grid, transformasi mengambil bentuk:
Contoh 2.3
• Konversi array piksel 256x256 bergantian titik
hitam dan putih (BW) ke sampel heksagonal grid
dan menampilkan kedua array sebagai gambar.
Asumsikan jarak sampel sama dengan satu.
Contoh 2.3
• Solusi:
Kita menggunakan transformasi linear

• Untuk mengubah piksel dalam array persegi panjang menjadi array


heksagonal. Perhatikan bahwa kisaran untuk heksagonal grid [(2,512)
x (-255,255)].
Gambar 2.6a,b menunjukkan masing-masing sampling rectangular
dan heksagonal grid.
Sementara Gambar 2.6 c,d berhubungan dengan versi yang
diperbesar dengan faktor zoom 4.
% Example2 3.m
Contoh 2.3
% convert rectangular to hexagonal grid
clear
close all
M = 256; N = 256;
f = uint8(zeros(N,N));
g = uint8(zeros(M+N,M+N));
% create an image with alternating black & white dots
% for visibility sake, these are R/2xR/2 squares
%
R = 2; % pixel replication factor
for k = 1:R:M
for l = 1:R:N
for k1 = 1:R/2
for l1 = 1:R/2
f(k+k1-1,l+l1-1) = 255;
end
end
end
end Lanjutan code di slide berikutnya…!!!
Contoh 2.3
figure,imshow(f), title('Rectangular grid')
Fig1 = figure;
imshow(f), title('Rectangular grid')
zoom(Fig1,4)
%
% rectangular to hexagonal transformation
V = [1 1; 1 -1];
for n1 = 1:M
for n2 = 1:N
t1 = V(1,1)*n1 + V(1,2)*n2;
t2 = V(2,1)*n1 + V(2,2)*n2;
g(513-t1,256+t2) = f(n1,n2);
end
end
figure,imshow(g), title('Hexagonal grid')
g1 = imcrop(g,[130 130 230 230]);
Fig2 = figure;
imshow(g1), title('Hexagonal grid')
zoom(Fig2,4)
Nonrectangular Sampling Grids
Gambar 2.6. Mengkonversi sampling
rectangular ke hexagonal grids:
(a) Piksel pada rectangular grid dengan unit
jarak dalam arah horizontal dan vertikal,
(b) Piksel pada hexagonal grid setelah
menerapkan transformasi dalam Persamaan
(2.22), (c) Versi diperbesar dari (a) dan (d)
versi yang diperbesar dari (b).
Baik (c) dan (d), faktor zoom adalah 4.
Contoh 2.4
• Dalam contoh ini, kita akan mengkonversi gambar Barbara dari sampling
persegi panjang asli ke grid sampel heksagonal menggunakan Persamaan
(2.22) dan menampilkannya.
• Gambar 2.7a merupakan gambar yang dipangkas (crop) dari Barbara
menggunakan kotak sampel persegi panjang. Gambar sampel heksagonal yang
sesuai ditunjukkan pada Gambar 2.7b.
• Jika M dan N adalah masing-masing jumlah baris dan kolom, dari suatu
gambar, maka ukuran gambar sampel segi enam (hexagonal) akan menjadi M +
N – 1 x M + N.
• Pada kode MATLAB, konversi dari hexagonal grid kembali ke kisi persegi juga
disertakan. Kode membaca gambar yang ditentukan, mengkonversi ke
hexagonal grid, menampilkan masing-masing gambar, mengubah heksagonal
grid ke rectangular grid, menampilkan masing-masing gambar, mengubah
heksagonal ke kotak persegi panjang, dan menampilkan wilayah yang valid.
Contoh 2.4

Mengkonversi gambar nyata dari rectangular grid ke hexagonal.


(a) Memotong gambar asli dalam rectangular grid dan (b) Gambar sampel
hexagonal yang sesuai.
Contoh 2.4
% Example2 4.m
% convert rectangular to hexagonal grid
% using linear transformation
% Sample spacing is DX in the row dimension
% and DY in the column dimension
% transformation is [t1 t2]’ = V*[n1 n2]’;
% where V = [DX DY; DX -DY];
% In our example we assume DX = DY = 1;
clear
close all
%A = imread(‘cameraman.tif’);
A = imread('barbara.tif');
%{
[M,N,D] = size(A);
N2 = 2*N;
M2 = 2*M;
%}
D = 3;
M = 216; N = 284; M2 = 2*M; N2 = 2*N; Lanjutan code di slide berikutnya…!!!
Contoh 2.4
%M = 164; N = 205; M2 = 2*M; N2 = 2*N;
if D > 1
%f = A(:,:,1);
f = A(60:275,302:585,1);
%f = A(182:345,76:280,1);
else
f = A;
end
figure,imshow(f), title('Rectangular grid')
g = uint8(zeros(M+N,M+N));% transformed image twice as big as the input
%
% Convert rectangular to hexagonal sampling
V = [1 1; 1 -1]; % rectangular to hexagonal transformation
for n1 = 1:M
for n2 = 1:N
t1 = V(1,1)*n1 + V(1,2)*n2;
t2 = V(2,1)*n1 + V(2,2)*n2;
g(t1,N+t2) = f(n1,n2);
end Lanjutan code di slide berikutnya…!!!
end
Contoh 2.4
figure,imshow(g'),title('Hexagonal grid')
% Now revert to rectangular grid
VI = inv(V);
f1 = uint8(zeros(M+N,M+N));
for t1 = 2:M+N
%for t2 = -N+1:N-1
for t2 = -N+1:M-1
n1 = floor(VI(1,1)*t1 + VI(1,2)*t2);
n2 = floor(VI(2,1)*t1 + VI(2,2)*t2);
%f1(n1+M/2,n2+N/2) = g(N2+1-t1,M+t2);
%f1(n1+round((N-1)/2),n2+round((M-1)/2)) = g(N2+1- t1,M+t2);
f1(n1+round((N-1)/2),n2+round((M-1)/2)) = g(M+N+1- t1,N+t2);
end
end
% image is flipped right and down
f1 = f1';
%f1(:,1:N2) = f1(:,N2:-1:1);
f1(:,1:M+N) = f1(:,M+N:-1:1);
f1(1:M+N,:) = f1(M+N:-1:1,:);
figure,imshow(f1(round(N/2)+2:round(N/2)+M+1,round(M/2)+2:round(M/2)+N+1))
title('Rectangular grid')
Image Quantization
• Seperti ditunjukkan pada Gambar 2.1, sampel gambar memiliki nilai
kontinum. Artinya, sampel adalah analog dan harus direpresentasikan
dalam format digital untuk penyimpanan atau transmisi.
• Karena jumlah bit (digit biner) untuk setiap gambar adalah terbatas –
biasanya 8 atau 10 bit, sampel analog pertama-tama harus dikuantisasi ke
jumlah level terbatas dan kemudian level tertentu harus dikodekan dalam
angka biner.
• Karena proses kuantisasi meng-kompress kontinum dari nilai analog ke
sejumlah nilai diskrit yang terbatas, beberapa distorsi diperkenalkan pada
gambar analog yang ditampilkan.
• Distorsi ini dikenal sebagai noise kuantisasi dan dapat bermanifestasi
sebagai patch , terutama di daerah datar. Ini juga dikenal sebagai
contouring.
Image Quantization
• Dalam istilah yang sederhana, skalar kuantizer
mengamati sampel input analog dan
menghasilkan nilai numerik.
• Nilai numerik output adalah perkiraan dekat
dengan nilai input. Nilai output ditentukan
sebelumnya sesuai dengan kisaran input dan
jumlah bit yang diperbolehkan dalam
kuantizer.
Image Quantization
• Secara formal, kita mendefenisikan skalar
kuantizer Q(.) untuk memetakan interval
keputusan input {dk, k = 1,2, …, L + 1} ke tingkat
output atau rekonstruksi {rk, k = 1, …, L}. Jadi,

• Kita asumsikan bahwa level output quantizer


dipilih sedemikian rupa:
Image Quantization
• Jumlah bit yang diperlukan untuk mengatasi salah satu level output
adalah

• Dimana [x] adalah bilangan bulat terdekat sama dengan atau lebih
besar dari x.
• Desain jumlah quantizer untuk menentukan interval keputusan dan
tingkat output yang sesuai dan aturan pemetaan.
• Karena ada banyak kemungkinan untuk mempartisi rentang input, kita
tertarik dengan quantizer optimal yang meminimalkan kriteria atau
fungsi biaya tertentu.
Lloyd–Max Quantizer
• Lloyd-Max Quantizer merupakan quantizer optimal dalam arti mean square
error (MSE).
• Ini bergantung pada Probability Density Function (PDF) dan jumlah level yang
diizinkan pada quantizer. Kita tunjukkan disini bahwa sampel analog input
adalah variabel acak yang dijelaskan pada PDF.
• Desain quantizer adalah sebagai berikut: Misalkan x menjadi variabel acak
skalar bernilai riil dengan pdf kontinu px(x). Desain MSE atau Lloyd-Max
Quantizer yang optimal berarti menentukan interval keputusan input {dk}
dan tingkat rekonstruksi yang sesuai {rk} untuk level L tertentu sehingga MSE
diminimalkan:
Uniform Quantizer
• Ketika PDF (Probability Density Function) dari sampel adalah
uniform, interval keputusan dan tingkat output dari Lloyd–
Max quantizer dapat dihitung secara analitis.
• Dalam hal ini, interval keputusan semuanya sama serta
interval level output dan quantizer disebut sebagai uniform
quantizer. Uniform PDF dari gambar input diberikan oleh:
Quantizer Performance
• Untuk uniform quantizer, kesalahan kuantisasi 𝑒 = 𝑥 − 𝑥� memiliki
∆ ∆
kisaran − 2 , 2 , dan juga terdistribusi secara seragam. Oleh karena
itu, MSE 𝜎𝑞2 untuk uniform quantizer dapat ditemukan dari:

• Kita dapat mengekspresikan kinerja uniform dalam hal Signal-to-noise


ratio (SNR) yang dapat dicapai. Daya noise karena kuantisasi diberikan
oleh Persamaan (2.38). Varians dari variabel acak terdistribusi seragam
dalam kisaran (xmin, xmax) dievaluasi dari:
Quantizer Performance
• Dimana 𝜇 adalah rata-rata nilai dari input sinyal,
yang diberikan oleh:

• Menggunakan persamaan (2.40) dalam (2.39) dan


dengan beberapa manipulasi aljabar, kita
menemukan signal variance sama dengan:
Quantizer Performance
• Oleh karena itu, SNR dari uniform quantizer didapatkan dari:

• Dalam dB, uniform quantizer B-bit menghasilkan SNR dari:

• Dari Persamaan (2.43), kita menemukan bahwa setiap bit tambahan dalam
quantizer meningkatkan SNR sebesar 6 dB. Dinyatakan dengan cara lain,
Lloyd–Max Quantizer untuk sinyal dengan uniform PDF memberikan SNR 6
dB/bit kuantisasi.
Contoh 2.5
• Perhatikan gambar BW dengan 8 bits/pixel dan
requantize-nya menjadi B bits/pixel menggunakan
uniform quantizer. Tampilkan gambar asli dan
gambar requantized serta amati perbedaannya jika
ada.
Plot SNR dalam dB karena noise kuantisasi. Untuk
tujuan tampilan, anggap B menjadi 3 dan 5 bit.
Untuk memplot, variasi B dari 1 hingga 7 bits.
Quantizer Performance
Solusi Contoh 2.5
• Untuk uniform quantizer dengan B bit kuantisasi, ukuran langkah
kuantisasi ditemukan.

• Kemudian, batas keputusan dan tingkat output dapat dihitung dari.

• Setelah menghitung batas keputusan dan tingkat rekonstruksi, B-bit


quantizer memberikan setiap pixel input nilai keluar menggunakan
aturan:
Solusi Contoh 2.5
• Kita masih menggunakan gambar Barbara sebagai contoh. Karena
ukurannya yang besar, kita memangkas ukurannya menjadi lebih kecil.
• Gambar 2.8a merupakan gambar 8-bb asli yang dipangkas, dan gambar
2.8b,c masing-masing sesuai dengan gambar yang diminta pada 3 dan 5
bpp.
• Kita melihat bidang datar tampak sangat tidak rata terutama pada
gambar 3-bpp dibandingkan dengan 5-bpp. Karena ukuran langkah
kuantisasi yang besar, lingkungan piksel yang besar akan dikuantisasi ke
level yang sama dan ini membuat gambar tampak tidak merata di area
datar.
• SNR dalam dB karena noise kuantisasi ditunjukkan pada Gambar 2.8d
untuk 1-7 bit kuantisasi. SNR dibandingkan dengan bit bersifat linear
pada sejumlah besar bit kuantisasi.
Solusi Contoh 2.5
• Dari plot kita menemukan kemiringan sekitar 6,3 dB/bit, yang sedikit lebih besar dari yang
diperoleh dari analisis. Pada 6 bpp, SNR sekitar 35 dB dan distorsi hampir tidak terlihat.
• Harus ditunjukkan bahwa uniform quantizer hanya optimal bila pdf dari gambar input
uniform. Namun, histogram gambar dalam contoh ini tidak persis uniform, seperti yang
ditunjukkan pada Gambar 2.8e.
• Kesalahan karena kuantisasi untuk L=32 ditunjukkan pada Gambar 2.8f (gambar atas),
dimana kita melihat bahwa kesalahan kuantisasi berkisar antara -4 dan +4, seperti yang
diharapkan.
• Histogram kesalahan yang sesuai ditunjukkan pada gambar di bawah, dimana kita
menemukan distribusi kesalahan menjadi luas. Ini tidak persis seragam karena sifat khusus
dari gambar yang kita ambil dan gambar input sudah didigitalkan.
• Akhirnya, plot interval keputusan input dibandingkan dengan tingkat rekonstruksi untuk
uniform quantizer pada Gambar 2.8g, yang merupakan tipe tangga, seperti yang
diharapkan.
Solusi Contoh 2.5
% Example2 5.m
% Uniform quantizer design
% Computes decision intervals and output levels
% for quantization bits from 1 to B
% Quantizes the input image to B bits and
% Computes Signal-to-Quantization noise in dB
% for 1 to B bits and plots
%
clear
close all
%
A = imread('barbara.tif');
%A = imread(’cameraman.tif’);
[Height,Width,Depth] = size(A);
if Depth == 1
f = double(A);
else
f = double(A(:,:,1));
end Lanjutan code di slide berikutnya…!!!
Solusi Contoh 2.5
if Height>512 || Width > 512
figure,imshow(uint8(f(60:275,302:585)))
[Counts,Bins] = imhist(uint8(f(60:275,302:585)),256);
else
figure,imshow(uint8(f))
[Counts,Bins] = imhist(uint8(f),256);
end
title('Image quantized to 8 bits')
% Calculate the histogram of the input image
figure,plot(Bins,Counts,'k', 'LineWidth', 2)
title('Histogram of input image')
xlabel('Pixel Value')
ylabel('Count')
%
f1 = zeros(size(f));
E = zeros(size(f));
sigmaf = std2(f);
B = 7;
snr = zeros(B,1);
Lanjutan code di slide berikutnya…!!!
Solusi Contoh 2.5
% Quantization method 1 is the process of using decision intervals
% and corresponding reconstruction levels
% method 2 is similar to JPEG quantization rule
QuantizerMethod = 1;% options 1 or 2
switch QuantizerMethod
case 1
% Design a uniform quantizer for bits 1 to 7
for b = 1:B
L = 2^b;
q = 255/L;
q2 = q/2;
d = linspace(0,255,L+1);
r = zeros(L,1);
for k = 1:L
r(k) = d(k)+q2;
end
for k = 1:L
[x,y] = find(f>d(k) & f<=d(k+1));
Lanjutan code di slide berikutnya…!!!
Solusi Contoh 2.5
for j = 1:length(x)
f1(x(j),y(j)) = round(r(k));
E(x(j),y(j)) = double(f(x(j),y(j)))-r(k);
% include surf plot
end
if b == 5 && k == 32
figure,subplot(2,1,1),plot(E(150,:),'k','LineWidth',2)
title(['Quantization error: L = ' num2str(k)])
xlabel('pixel # on row 150')
ylabel('Quantization error')
[Counts,Bins]= hist(E(150,:));
subplot(2,1,2),plot(Bins,Counts,'k','LineWidth',2)
title('Histogram of quantization error')
xlabel('Error bins'), ylabel('Counts')
end
clear x y
end
clear E
Lanjutan code di slide berikutnya…!!!
Solusi Contoh 2.5
if b == 3 || b == 5
if Height>512 || Width > 512
figure,imshow(uint8(f1(60:275,302:585)))
else
figure,imshow(uint8(f1))
end
title(['Image quantized to ' num2str(b) ' bits'])
end
snr(b) = 20*log10(sigmaf/std2(f-f1));
end
figure,plot(1:B,snr,'k','LineWidth',2)
title('SNR Vs Bits/pixel of a uniform quantizer')
xlabel('# bits')
ylabel('SNR(dB)')
figure,stairs(d(1:L),r,'k','LineWidth',2)
title('Uniform Quantizer: Decision intervals & output levels')
xlabel('Decision Regions')
ylabel('Output Levels')
case 2 Lanjutan code di slide berikutnya…!!!
Solusi Contoh 2.5
for b = 1:B
L = 2^b;
q = 255/L;
f1 = round(floor(f/q + 0.5)*q);
if b == 5
E = f - f1;
figure,subplot(2,1,1),plot(E(150,:),'k','LineWidth',2)
title(['Quantization error: L = ' num2str(L)])
xlabel('pixel # on row 150')
ylabel('Quantization error')
[Counts,Bins]= hist(E(150,:));
subplot(2,1,2),plot(Bins,Counts,'k','LineWidth',2)
title('Histogram of quantization error')
xlabel('Error bins'), ylabel('Counts')
end
if b == 3 || b == 5
if Height>512 || Width > 512
figure,imshow(uint8(f1(60:275,302:585)))
else Lanjutan code di slide berikutnya…!!!
Solusi Contoh 2.5
figure,imshow(uint8(f1))
end
title(['Image quantized to ' num2str(b) ' bits'])
end
snr(b) = 20*log10(sigmaf/std2(f-f1));
end
figure,plot(1:B,snr,'k','LineWidth',2)
title('SNR Vs Bits/pixel of a uniform quantizer')
xlabel('# bits')
ylabel('SNR(dB)')
end
PDF Optimized Quantizer
• Dalam kasus uniform quantizer, pdf dari sampel analog diasumsikan uniform,
dan oleh karena itu, kita memperoleh solusi bentuk tertutup untuk daerah
pengambilan keputusan dan tingkat output yang optimal.
• Selain itu, interval antara dua wilayah keputusan berurutan serta interval
antara dua tingkat output berurutan adalah konstan.
• Ketika pdf dari sampel analog input tidak seragam (non uniform), maka
langkah-langkah kuantisasi tidak konstan dan solusi optimal diperoleh dengan
menyelesaikan persamaan transcendental. Ini menghasilkan nonuniform
quantizer dan disebut sebagai pdf optimized quantizer.
• Kita dapat menyelesaikan Persamaan (2.31) secara iteratif untuk
mendapatkan solusi optimal. Salah satu prosedur tersebut disebut Llyod
Algorithm.
PDF Optimized Quantizer
Llyod Algorithm
Diberikan gambar input dan jumlah level L kuantisasi:
1. Pilih set awal set R1 dari level output L, distorsi rata-rata awal 𝑇, 𝜀 > 0, dan set k = 1.
2. Partisi piksel input ke dalam wilayah Dk menggunakan output yang ditetapkan Rk
sesuai dengan kondisi tetangga terdekat melalui,

1. Dari daerah partisi yang ditemukan di langkah 2, temukan level output baru Rk+1
sebagai centroid partisi input.
2. Hitung distorsi rata-rata baru karena tingkat output baru. Jika perbedaan absolut
antara distorsi rata-rata sebelumnya dan saat ini relatif terhadap distorsi rata-rata
sebelumnya kurang dari 𝜀, berhenti. Batas keputusan input dihitung sebagai titik
tengah dari titik output. Jika tidak, atur k ke k+1 dan lanjutkan ke langkah 2.
Dithering
• Ketika gambar dikuantifikasi secara kasar, kita melihat efek contouring. Ini
terjadi apakah kita menggunakan uniform atau nonuniform quantizer.
• Salah satu cara untuk mengurangi contouring adalah dengan
menambahkan sedikit dither atau pseudo random noise ke gambar input
sebelum kuantisasi dan kemudian meng-quantize gambar.
• Dither mengganggu input dengan jumlah kecil sehingga piksel memiliki
nilai yang kurang lebih sama di lingkungan jatuh ke wilayah keputusan
yang berbeda dan karenanya, menentukan tingkat output yang sedikit
berbeda. Ini menghilangkan atau meminimalkan contouring.
Contoh 2.6
% Dithering.m
% Quantize an input image using a uniform quantizer
% with dithering to eliminate contouring effect
% Dither is a uniformly distributed pseudo random noise
% between [-8,8]
clear
close all
%
B = 4; % # bits of quantization
A = imread('barbara.tif');
%A = imread(’cameraman.tif’);
[Height,Width,Depth] = size(A);
if Depth == 1
f = double(A);
else
f = double(A(:,:,1));
end
Lanjutan code di slide berikutnya…!!!
Contoh 2.6
if Height>512 || Width > 512
figure,imshow(uint8(f(60:275,302:585)))
[Counts,Bins] = imhist(uint8(f(60:275,302:585)),256);
else
figure,imshow(uint8(f))
[Counts,Bins] = imhist(uint8(f),256);
end
title('Image quantized to 8 bits')
%
u = 16*(rand(Height,Width)-0.5); % dither or pseudo random noise
f1 = f + u; % noise added to input image
f2 = zeros(size(f));% quantized image without dithering
g = zeros(size(f)); % quantized image with dithering
g1 = zeros(size(f)); % quantized image with dithering with no subtraction
% after quantization
% Design a uniform quantizer with B bpp

Lanjutan code di slide berikutnya…!!!


Contoh 2.6
L = 2^B;
q = 255/L;
q2 = q/2;
d = linspace(0,255,L+1); % decision regions
r = zeros(L,1); % output levels
for k = 1:L
r(k) = d(k)+q2;
end
% Quantize input image without dithering
for k = 1:L
[x,y] = find(f>d(k) & f<=d(k+1));
for j = 1:length(x)
f2(x(j),y(j)) = round(r(k));
end
end
% Quantize input image with dithering

Lanjutan code di slide berikutnya…!!!


Contoh 2.6
for k = 1:L
[x,y] = find(f1>d(k) & f1<=d(k+1));
for j = 1:length(x)
g(x(j),y(j)) = round(r(k))-u(x(j),y(j));
g1(x(j),y(j)) = round(r(k));
end
end
% display quantized image without dithering
if Height>512 || Width > 512
figure,imshow(uint8(f2(60:275,302:585)))
else
figure,imshow(uint8(f2))
end
title(['No dithering: Image quantized to ' num2str(B) ' bits'])
% display quantized image with dithering
if Height>512 || Width > 512
figure,imshow(uint8(g(60:275,302:585)))
else
figure,imshow(uint8(g)) Lanjutan code di slide berikutnya…!!!
Contoh 2.6
end
title(['With dithering: Image quantized to ' num2str(B) ' bits'])
if Height>512 || Width > 512
figure,imshow(uint8(g1(60:275,302:585)))
else
figure,imshow(uint8(g1))
end
title(['No dither subtraction: Image quantized to ' num2str(B) ' bits'])
Dithering
Gambar 2.11. Contoh kuantisasi
dithering.
(a) Gambar barbara dikuantisasi ke 4
bpp menggunakan uniform dithered
quantizer.
(b) Gambar yang sama pada 4 bpp
menggunakan uniform quantizer tanpa
dithering.
(c) Gambar yang sama dengan (a) tetapi
dither tidak di-subsract setelah
dikuantisasi.
COLOR IMAGE REPRESENTATION
• Diskusi pada bagian sebelumnya berkaitan dengan pengambilan sampel dan
kuantisasi gambar monokrom. Gambar BW disebut luminance atau luma.
• Di sisi lain, gambar warna memiliki tiga komponen yang sesuai dengan warna
primer merah, hijau, dan biru. Biasanya ketiga komponen gambar warna
memiliki resolusi spasial dan skala abu-abu yang sama. Mereka juga sangat
berkorelasi.
• Oleh karena itu, melakukan jenis pemrosesan yang sama pada setiap
komponen warna akan menghasilkan pewarnaan yang salah atau tampilan
visual yang buruk.
• Misalnya, kita ingin meningkatkan citra warna dengan menyamakan histogram
komponen secara individual, maka apa yang disebut colorenhanced image
(gambar yang ditingkatkan warnanya) akan tampak sangat berbeda atau
bahkan mungkin memiliki kualitas visual yang sangat buruk dibandingkan
dengan gambar asli.
COLOR IMAGE REPRESENTATION
• Kita ingin mengkompres gambar warna, kita dapat mencapai rasio
kmpresi yang lebih tinggi dan kualitas visual yang baik jika kita
menggunakan komponen warna yang kurang lebih tidak berkorelasi dan
melakukan operasi kompresi yang berbeda pada komponen.
• Untuk mencapai kompresi yang lebih tinggi atau untuk memperoleh
peningkatan visual yang lebih baik, kita harus mengubah gambar warna
dari koordinat RGB aslinya menjadi satu set koordinat yang sesuai.
• Tujuan transformasi koordinat warna adalah untuk membuat gambar
warna dalam tiga koordinat ortogonal sehingga dapat dimanipulasi secara
individual untuk mendapatkan hasil yang optimal tanpa mengorbankan
kualitas visual.
Laporan
• Buat laporan untuk Contoh 2.1 – 2.6.
Daftar Pustaka
• Thyagarajan. 2011. STILL IMAGE AND VIDEO
COMPRESSION WITH MATLAB. John Wiley &
Sons, Inc: Canada.

Anda mungkin juga menyukai