Вы находитесь на странице: 1из 8

29

PERBAIKAN KUALITAS CITRA

Proses yang termasuk dalam perbaikan kualitas citra antara lain:


1. Pengubahan kecerahan gambar (Image Brighness).
2. Peregangan kontras (contrast stretching)
3. Pengubahan histogram citra
4. Pelembutan citra (image smooting)
5. Penajaman (sharpening) tepi (edge)
6. Pemberian warna semu (pseudocoloring)
7. Pengubahan geometrik

1. Pengubahan Kecerahan gambar


Untuk membuat citra lebih terang atau lebih gelap, kita melakukan
pengubahan kecerahan gambar. Kecerahan/kecemerlangan gambar
dapat diperbaiki dengan menambahkan (atau mengurangkan) sebuah
konstanta pada setiap pixel di dalam citra. Akibat dari operasi ini,
histogram citra mengalami pergeseran.
Secara matematis operasi ditulis f(x,y)’=f(x,y) + b

2. Peregangan Kontras
Kontras menyatakan sebaran terang (lightness) dan gelap (darkness)
di dalam sebuah gambar. Citra dikelompokan dalam 3 kategori
kontras yaitu kontras-rendah, citra kontras bagus, dan citra kontras
tinggi. Ketiga kategori ini umumnya dibedakan secara intuitif.

3.Pengubahan Histogram Citra


Untuk memperoleh histogram citra sesuai dengna keinginan kita,
maka penyebaran nilai-nilai intensitas pada citra harus diubah.
Terdapat 2 metode pengubahan citra
a. Perataan histogram (histogram equalization)
Nilai-nilai intensitas di dalam citra diubah sehingga
penyebarannya seragam (uniform).
b. Spesifikasi histogram (histogram spesification)
Nilai-nilai intensitas di dalam eitra diubah agar diperoleh
histogram dengan bentuk yang dispesifikasikan oleh pengguna.

a. Perataan histogram
Tujuan dari perataan histogram adalah untuk memperoleh
penyebaran histogram yang merata, sedemikian sehingga setiap
derajat keabuan memiliki jumlah pixel yang relatif sama.
Karena histogram menyatakan peluang pixel dengan derajat
keabuan tertentu maka rumus menghitung histogram sebagai berikut :
nk k
Pr (rk )  dalam hal ini rk  ,0  k  L  1
n L 1
30
Yang artinya, derajat keabuan (k) dinormalkan terhadap derajat
keabuan terbesar (L - 1). Nilai rk=0 menyatakan hitam, dan rk =1
menyatakan putih dalam skala keabuan yang didefinisikan.

Contoh nilai-nilai rk, jika L=8


k rk nk (jml pixel) Pr(rk)=nk/n
0 0/7 = 0.00 790 0.19
1 1/7=0.14 1023 0.25
2 2/7=0.29 850 0.21
3 3/7=0.43 656 0.16
4 4/7=0.57 329 0.08
5 5/7=0.71 245 0.06
6 6/7=0.86 122 0.03
7 7/7=1.00 81 0.02
Maka histogram citra semula sebelum perataan adalah :
0.3
0.25
0.2
Pr(r k )

0.15
0.1
0.05
0
0 1/7 2/7 3/7 4/7 5/7 6/7 7/7
rk

Yang dimaksud dengan perataan histogram adalah mengubah


derajat keabuan suatu pixel (r) dengan derajat keabuan yang barn (s)
dengan suatu fungsi transformasi T, yang dalam hal ini s = T(r). Ini
berarti r dapat diperoleh kembali dari r dengan tranformasi invers r=T -
1
(s) dimana , 0 s 1.
Untuk 0 ri 1 , maka 0 T(r) 1. Ini untuk menjamin pemetaan
konsisten pada rentang nilai yang diperbolehkan

Perhitungan perataan histogram adalah sbb :


0
s0  T (r0 )   Pr (r j ) Pr ( r0 )  0.19
j 0

1
s1  T (r1 )   Pr (rj ) Pr (r0 )  Pr (r1 )  0.19  0.25  0.44
j 0

Dan seterusnya, diperoleh : s2= 0.65, s3=0.81, s4=0.89, s5=0.95


s6=0.98, s7=1.00

Nilai-nilai sk harus dibulatkan ke nilai-nilai r yang terdekat, sehingga :


31
S0=0.19 lebih dekat ke nilai 1/7=(0.14), maka s0=1/7
S1=0.44 lebih dekat ke nilai 3/7=(0.43), maka s1=3/7
S2=0.65 lebih dekat ke nilai 5/7=(0.71), maka s2=5/7
S3=0.81 lebih dekat ke nilai 1/7=(0.86), maka s3=6/7
S4=0.89 lebih dekat ke nilai 1/7=(0.86), maka s4=6/7
S5=0.95 lebih dekat ke nilai 1/7=(1.00), maka s5=7/7
S6=0.98 lebih dekat ke nilai 1/7=(1.00), maka s6=7/7
S7=1.00 lebih dekat ke nilai 1/7=(1.00), maka s7=7/7
Hasil tranformasinya :
k rk sk
0 0 1/7
1 1/7 3/7
2 2/7 5/7
3 3/7 6/7
4 4/7 6/7
5 5/7 1
6 6/7 1
7 7/7 1

Terlihat hanya lima nilai intensitas yang terisi yaitu (1/7, 3/7, 5/7, 6/7,
dan 1). Notasi untuk tiap hasil transformasi didefinisikan ulang :
S0= 1/7, s1=3/7, s2=5/7, s3=6/7 s4=1
Jumlah pixel hasil transformasi diringkas menjadi :
sk sk Ps(sk)=nk/n
1/7 790 0.19
3/7 1023 0.25
5/7 850 0.21
6/7 656+329 =958 0.23
7/7 245+122+81 =448 0.11

Maka histogram hasil perataan


0.3

0.25

0.2
Ps(s k)

0.15

0.1

0.05

0
1/7 3/7 5/7 6/7 1
sk

Citra anjing collie


yang terlalu gelap,
histogramnya
menumpuk pada
daerah bagian kiri
32

Citra anjing collie


setelah perataan
histogramnya
tersebar merata di
seluruh daerah
keabuan

void perataanHistogram(Citra Image, int N, int M)


{ int i, j;
float sum, float Hist[256];
int HistWq[256]; /* histogram hasil perataan */

histogram(Image,N,M,Hist); /*hitung histogram citra */


for (i=0; i<256;I++)
{
sum=0.0;
for (j=0;j<=I;j++)
sum=sum+Hist[j];
HistEq[I]=floor(255*sum);
}
/* update citra sesuai histogram hasil perataan */
for (=0;i<=N-1;i++)
for (j=0;j<=M-1;j++)
Image[i][j]=HistEq[Image[i][j]];
}

b. Spesifikasi Histogram
Misalkan Pr(r) adalah histogram citra semula dan Pz(z) adalah
histogram yang diinginkan.
Berikut tabel histogram semula dan tabel histogram yang diinginkan.
rk nk (jml pixel) Pr(rk)=nk/n zk Pz(zk)
0/7= 0.00 790 0.19 0/7= 0.00 0.00
1/7=0.14 1023 0.25 1/7=0.14 0.00
2/7=0.29 850 0.21 2/7=0.29 0.00
3/7=0.43 656 0.16 3/7=0.43 0.15
4/7=0.57 329 0.08 4/7=0.57 0.20
5/7=0.71 245 0.06 5/7=0.71 0.30
6/7=0.86
0.3
122 0.03 0 .3 5
6/7=0.86 0.20
7/7=1.00
0.25 81 0.02 0 .3 7/7=1.00 0.15
0.2 0 .2 5
Pr(r k )

0 .2
0.15
0 .15
0.1
0 .1
0.05
0 .0 5
0
0 1/7 2/7 3/7 4/7 5/7 6/7 7/7 0
0 1/ 7 2 /7 3 /7 4 /7 5/ 7 6/7 1
rk z k
33

Histogram citra semula Histogram yang diinginkan

Langkah-langkah pembentukan histogram citra :


Langkah 1 : Perataan histogram

rjsk nk Ps(sk)=nk/n
r0s0=1/7 790 0.19
r1s1=3/7 1023 0.25
r2s2=5/7 850 0.21
r3,r4s3=6/7 656+329 =958 0.23
r5,r6, r7s4=7/7 245+122+81 =448 0.11

Langkah 2: Lakukan Perataan terhadap histogram yang diinginkan


k nj k
vk  G ( z k )     Pz ( z j )
j 0 n j 0

Hasilnya adalah sbb :


v0=G(z0)=0.00 v4=G(z4)=0.35
v1=G(z1)=0.00 v5=G(z5)=0.65
v2=G(z2)=0.00 v6=G(z6)=0.85
v3=G(z3)=0.15 v7=G(z7)=1.00

Langkah 3 :Gunakan transformasi z=G-1(s) untuk memperoleh nilai z


dari nilai hasil perataan histogram

s0=1/70.14 paling dekat dengan 0.15=G(z3), jadi G-1(0.14)=z3=1/7


s1=3/70.49 paling dekat dengan 0.35=G(z4), jadi G-1(0.35)=z4=4/7
s2=5/70.71 paling dekat dengan 0.65=G(z5), jadi G-1(0.65)=z5=5/7
s3=6/70.86 paling dekat dengan 0.85=G(z6), jadi G-1(0.86)=z6=6/7
s4=7/71.00 paling dekat dengan 1.00=G(z7), jadi G-1(1.00)=z7=1
Diperoleh pemetaan langsung sebagai berikut :
r0=0 z3=3/7 r4=4/7 z6=6/7
r1=1/7 z4=4/7 r5=5/7 z7=1
r2=2/7 z5=5/7 r6=6/7 z7=1
0 .3

r3=3/7 z6=6/7 r7=1 z7=1


0 .2 5

zk nk 0 .2

0 .15

0 .1

0 .0 5

0
0 1/7 2/7 3 /7 4 /7 5/ 7 6 /7 1
z k
34
0 0 0.00
1/7 0 0.00
2/7 0 0.00
3/7 790 0.19
4/7 1023 0.25
5/7 850 0.21
6/7 985 0.24
7/7 448 0.11

Histogram yang diperoleh merupakan hampiran dari histogram yang


dispesifikasikan karena kita mencoba menemukan nilai s yang
transformasinya mendekati nilai z

KONVOLUSI PADA FUNGSI DUA DIMENSI


Operasi konvolusi dilakukan dengan menggeser kernel konvolusi
pixel per pixel. Hasil konvolusi disimpan di dalam matriks yang baru.

Contoh : Citra f(x,y) yang berukuran 5x5 dan sebuah kernel mask
yang berukuran 3x3 sbb :

4 4 3 5 4
6 2 1
 6 5 5 0 0
f ( x, y )  5 6 6 6 2 
g ( x, y )   1  4  1
 
6 7 5 5 3  0 1 0 
 3 5 2 4 4

Tanda  menyatakan posisi (0,0) dari kernel


operasi konvolusinya f(x,y) * g(x,y)

1. Tempatkan kernel pada sudut kiri atas, kemudian hitung nilai


pixel pada posisi (0,0) dari kernel

4 4 3 5 4
6 6 5 5 2 3
5 6 6 6 2
6 7 5 5 3
3 5 2 4 4

Hasil konvolusi =3 dihitung dengan cara :

(0x3)+(-1x4)+(0x3)+(-1x6)+(4x6)+(-1x5)+(0x5)+(-1x6)+(0x6) = 3

2. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixelnya

4 4 3 5 4
35
6 6 5 5 2 3 0
5 6 6 6 2
6 7 5 5 3
3 5 2 4 4

Hasil konvolusi =0 dihitung dengan cara :

(0x4)+(-1x3)+(0x5)+(-1x6)+(4x5)+(-1x5)+(0x6)+(-1x6)+(0x6)=0

3. Geser Kernel satu pixel ke kanan, kemudian hitung konvolusinya

4 4 3 5 4
6 6 5 5 2 3 0 2
5 6 6 6 2
6 7 5 5 3
3 5 2 4 4

Hasil konvolusi =2 dihitung dengan cara :

(0x3)+(-1x5)+(0x4)+(-1x5)+(4x5)+(-1x2)+(0x6)+(-1x6)+(0x2)=2

4. Selanjutnya geser kernel ke bawah, lalu mulai lagi melakukan


konvolusi dari sisi kiri citra. Setiap kali konvolusi, geser kernel satu
pixel ke kanan.

4 4 3 5 4
6 6 5 5 2 3 0 2
5 6 6 6 2 0
6 7 5 5 3
3 5 2 4 4

Hasil konvolusi =0 dihitung dengan cara :

(0x6)+(-1x6)+(0x5)+(-1x5)+(4x6)+(-1x6)+(0x6)+(-1x7)+(0x5)=0

4 4 3 5 4
6 6 5 5 2 3 0 2
5 6 6 6 2 0 2
6 7 5 5 3
36
3 5 2 4 4

Hasil konvolusi =2 dihitung dengan cara :

(0x6)+(-1x5)+(0x5)+(-1x6)+(4x6)+(-1x6)+(0x7)+(-1x5)+(0x5)=2

4 4 3 5 4
6 6 5 5 2 3 0 2
5 6 6 6 2 0 2 6
6 7 5 5 3
3 5 2 4 4

Hasil konvolusi =6 dihitung dengan cara :

(0x5)+(-1x5)+(0x2)+(-1x6)+(4x6)+(-1x2)+(0x5)+(-1x5)+(0x3)=6

Sebagai catatan, jika hasil konvolusi menghasilkan nilai pixel negatif,


maka nilai tersebut dijadikan 0, sebaliknya jika hasil konvolusi
menghasilkan nilai pixel lebih besar dari nilai keabuan maksimum,
maka nilai tersebut dijadikan nilai keabuan maksimum.

Konvolusi berguna apada proses pengolahan citra seperti:


 Perbaikan kualitas citra (image enhancement)
 Penghilangan derau
 Penghalusan/pelembutan citra
 Deteksi tepi, penajaman tepi
 Dll

Вам также может понравиться