Search

Selasa, 10 Juli 2012

OPERASI-OPERASI DASAR PENGOLAHAN CITRA DIGITAL

OPERASI-OPERASI DASAR
PENGOLAHAN CITRA DIGITAL
Operasi-operasi yang dilakukan pada pengolahan citra digital dapat dikelompokkan menjadi empat level komputasi yaitu level : titik, lokal, global dan objek.
1. Level Titik
Operasi pada level titik hanya dilakukan pada pixel tunggal di dalam citra.Operasi titik dikenal juga dengan nama operasi pointwise.
Operasi ini terdiri dari : Mengakses pixel pada lokasi tertentu Memodifikasi dengan operasi linier atau nonlinier Menempatkan nilai pixel baru pada lokasi yang sesuai pada citra baru. Ulangi langkah-langkah tersebut untuk seluruh pixel.
Secara matematis, operasi pada level titik dinyatakan sebagai berikut:
Dimana :
fA : Citra masukan
fB : Citra keluaran
Otitik : Operasi matematis (linier / non linier)
Operasi pada level titik dibagi menjadi tiga macam yaitu berdasarkan : intensitas, geometri dan gabungan intensitas dan geometri
a. Berdasarkan Intensitas
Nilai intensitas u suatu pixel diubah dengan transformasi h menjadi nilai intensitas baru v.
Contoh operasi titik berdasarkan intensitas adalah operasi ambang batas (thresholding). Pada operasi ini nilai pixel dipetakan ke salah satu dari dua nilai berdasarkan nilai ambang.
)},({),(yxfOyxfAtitikB)},({yxfOtitik],0[, )(Lvuuhv
Jika nilai a1 = 0 dan a2 = 1, maka operasi ini mentransformasikan citra hitam putih menjadi citra biner. Misalkan citra hitam putih yang memiliki gray level 256, dipetakan menjadi citra biner, maka fungsi transformasinya adalah sebagai berikut:
pixel-pixel yang nilai intensitasnya di bawah 128 diubah menjadi hitam (nilai intensitas = 0), sedangkan pixel-pixel yang nilai intensitasnya di atas 128 diubah menjadi putih (nilai intensitas =1).
Citra Asli Citra biner Citra negatif
Algoritma : transformasi citra hitam-putih menjadi citra biner
void biner(Citra A, citra_biner B, int T, int N, int M)
/* Membuat citra biner dari citra A berdasarkan nilai ambang (treshold) T yang dispesifikasikan. Ukuran citra adalah N x M. citra_biner adalah tipe data untuk citra biner). */
{ int i, j;
citra_biner B;
for (i=0; i<=N-1; i++)
for (j=0; j<=M-1; j++)
{
if (A[i][j] < T)
B[i][j] = 0;
Else
B[i][j] = 1;
}
}
TyxfaTyxfayxf),( ,),( ,)',(21128),( ,1128),( ,0)',(yxfyxfyxf
Contoh operasi titik yang lain adalah :
1. operasi negatif yaitu mendapatkan citra negatif meniru film negatif pada fotografi dengan cara mengurangi nilai intensitas pixel dari nilai keabuan maksimum. Misal citra dengan 256 derajat keabuan (8 bit), maka citra negatif diperoleh dengan persaman
f(x,y)’ = 255 – f(x,y)
sedangkan citra dengan 128 derajat keabuan
f(x,y)’ = 127 – f(x,y)
Algoritma citra hitam putik ke citra negatif
void negatif(Citra A, citra B, int N, int M)
{ int i, j;
for (i=0; i<=N-1; i++)
for (j=0; j<=M-1; j++)
{
B[i][j] = 255 – A[i][j]
}
}
2. Pemotongan (clipping) : operasi ini dilakukan jika nilai pixel hasil pengolahan citra terletak dibawah nilai intensitas minimum atau di atas nilai intensitas maksimum:
3. Pencerahan citra (image brightening)
Kecerahan citra dapat diperbaiki dengan menambahkan (atau mengurangkan sebuah konstanta kepada (atau dari) setiap pixel di dalam citra f(x,y)’ = f(x,y) + b
Jika b positif, kecerahan citra bertambah, sebaliknya jika b negatif kecerahan citra berkurang.
Semula citra zelda tampak gelap, tetapi dengan menambahkan setiap nilai pixel dengan b=10, citra zelda menjadi lebih terang.
Operasi pencerahan citra dapat menghasilkan nilai dibawah intensitas minimum atau diatas nilai intensitas maksimum. Oleh karena itu operasi clipping perlu diterapkan.
0),(,0255),(0),(255),(,255)',(yxfyxfyxfyxfyxf
Algoritma pencerahan citra untuk citra 256 derajat keabuan
void negatif(Citra A, citra B, int N, int M, int b)
{ int i, j;
for (i=0; i<=N-1; i++)
for (j=0; j<=M-1; j++)
{
temp = A[i][j] + b;
/* clipping */
if (temp < 0)
B[i][j] = 0;
else
if(temp > 255)
B[i][j] = 255;
else
B[i][j] = temp;
}
}
b. Berdasarkan geometri
Posisi pixel diubah ke posisi yang baru, sedangkan intensitasnya tidak berubah. Contoh operasi titik berdasarkan geometri misalnya pemutaran (rotasi), pergeseran(translasi), penskalaan (dilatasi), pembetulan erotan (distorsi)
c. Berdasarkan intensitas dan geometri
Operasi ini tidak hanya mengubah nilai intensitas pixel, tapi juga mengubah posisinya. Misalnya image morphing, yaitu perubahan bentuk objet beserta nilai intensitasnya.
2. Aras Lokal
Operasi pada aras lokal menghasilkan citra keluaran yang intensitas suatu pixel bergantung pada intensitas pixel-pixel tetangganya
N : neighborhood, yaitu pixel-pixel yang berada disekitar (x,y)
Contoh operasi beraras lokal adalah operasi konvolusi untuk mendeteksi tepi(edge detection) dan pelembutan citra (image smoothing).
Gambar Hasil pendeteksian semua tepi dari citra lena
),(),(),(),(yxNyxyxfOyxfjijiAlokalB
3. Aras Global
Operasi pada aras global menghasilkan citra keluaran yang intensitas suatu pixel bergantung pada intensitas keseluruhan pixel
Contohnya operasi penyetaraan histogram untuk meningkatkan kualitas citra.
4. Aras Objek
Tujuan dari operasi pada aras objek adalah untuk mengenali objek tersebut, misalnya dengan menghitung rata-rata intensitas, ukuran, bentuk, karakteristik lain dari objek.
Operasi Aritmetika
Karena citra digital adalah matriks, maka operasi aritmetika juga berlaku yang meliputi :
1. Penjumlahan atau pengurangan antara dua citra A dan B
C(x,y) = A(x,y) B(x,y)
2. Perkalian dua citra
C(x,y) = A(x,y) B(x,y)
3. Penjumlahan / pengurangan citra A dengan skalar c
C(x,y) = A(x,y) c
4. Perkalian/pembagian citra A dengan sebuah skalar c
C(x,y) = c . A(x,y)
Operasi Boolean pada citra
Operasi boolean terdiri dari and, or dan not
C(x,y) = A(x,y) and B(x,y)
C(x,y) = A(x,y) or B(x,y)
C(x,y) = not A(x,y)
Pada citra biner, operasi not dapat digunakan untuk menentukan komplemen dari citra.
Ganesha not Ganesha
)},({),(yxfOyxfAglobalB
void not(Citra A, citra B, int N, int M)
{ int i, j;
for (i=0; i<=N-1; i++)
for (j=0; j<=M-1; j++)
{
B[i][j] = ! A[i][j];
}
}
HISTOGRAM CITRA
Histogram citra adalah grafik yang menggambarkan penyebaran nilai-nilai intensitas pixel dari suatu citra atau bagian tertentu di dalam citra. Histogram juga dapat menunjukkan banyak hal tentang kecerahan (brightness) dan kontras (contrast) dari sebuah gambar. Secara grafis histogram ditampilkan dengan diagram batang
Misal citra digital memiliki L derajat keabuan. (misalnya citra dengan kuantisasi derajat keabuan 8-bit, nilai derajat keabuan dari 0 – 255) secara matematis dapat dihitung dengan rumus :
Dimana ni = jumlah pixel yang memiliki derajat keabuan I
n = jumlah seluruh pixel di dalam citra
Sebagai contoh matrik citra berukuran 8 x 8 dengan derajat keabuan dari 0 sampai 15 ( ada 16 buah derajat keabuan)
121314111001278991011131522010054141013543201111088111212129108956141515810002101412108773
ni
Hi=ni/n (n=64)
0
8
0.125
1
4
0.0625
2
5
0.078125
3
2
0.03125
4
2
0.03125
5
3
0.046875
6
1
0.015625
7
3
0.0156875
8
6
0.09375
9
3
0.046875
10
7
0.109375
11
4
0.0625
12
5
0.078125
13
3
0.046875
14
4
0.0625
15
3
0.046875
Semakin besar nilai ni maka semakin besar pula nilai hi
Algoritma Perhitungan Histogram
1,.....1,0,Linnhii
Citra masukan mempunyai 256 derajat keabuan yang nilai-nilainya dari 0 sampai 255. Intensitas pixel disimpan di dalam image[0..N-1] [0..M-1], sedangkan histogram disimpan di dalam tabel Hist[0..255]
void histogram(Citra Image,int N,int M, float Hist[256])
/*Menghitung histogram utk citra Image yang berukuran NxM
Histogram disimpan di dlm tabel Hist yang bertipe float
*/
{ int i, j,n;
/* inisialisasi Hist[0..255] dengan 0 */
for (i=0; i<=255; i++)
Hist[i]=0;
for (i=0; i<=N-1; i++)
for (j=0; j<=M-1; j++)
Hist[image[i][j]]=Hist[Image[i][j]]+1;
/*normalisasi Hist[i] dengan jumlah seluruh pixel */
n=N*M
for (i=0; i<=255; i++)
Hist[i]=Hist[i]/(float)n;
}
Kapal 512x512 8 bit Histogram citra kapal
Khusus citra berwarna, histogramnya dibuat untuk setiap kanal RGB (merah, hijau dan biru).
Histogram citra banyak memberikan informasi penting sbb:
1. Nilai hi, menyatakan peluang (probability) pixel P(i), dengan derajat keabuan i. Jumlah seluruh nilai hi sama dengan 1 atau
2. Puncak histogram menunjukkan intensitas pixel yang menonjol. Lebar dari puncak menunjukkan rentang kontras dari gambar. Citra yang mempunyai kontras terlalu terang atau terlalu gelap 101Liih
memiliki histogram sempit. Histogramnya terlihat hanya menggunakan setengah dari daerah derajat keabuan.
Citra yang baik memiliki histogram yang mengisi daerah derajat keabuan secara penuh dangan distribusi yang merata pada setiap intensitas pixel
Citra Gelap Citra terang
Citra normal (normal brightness) normal brightness & high contrast
Citra Lena yang terlalu gelap, nampak histogram menumpuk di sebelah kiri
Citra Lena yang terlalu terang, nampak histogram menumpuk di sebelah kanan
Citra Lena yang bagus (normal)

Tidak ada komentar:

Posting Komentar