Kamis, 03 Juni 2010

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.





• 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;
}
}

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.
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
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.

Tidak ada komentar:

Posting Komentar