SlideShare a Scribd company logo
1 of 20
Download to read offline
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 41
Bab 4
Operasi-operasi Dasar Pengolahan
Citra Dijital
itra dijital direpresentasikan dengan matriks. Operasi pada citra dijital pada
dasarnya adalah memanipulasi elemen-elemen matriks. Elemen matriks
yang dimanipulasi dapat berupa elemen tunggal (sebuah pixel),
sekumpulan elemen yang berdekatan, atau keseluruhan elemen matriks. Di dalam
bab ini akan diuraikan operasi-operasi dasar pada pengolahan citra dijital.
4.1 Aras Komputasi
Operasi-operasi yang dilakukan pada pengolahan citra dapat dikelompokkan ke
dalam empat aras (level) komputasi, yaitu aras titik, aras lokal, aras global, dan
aras objek [JAI95]. Kita mulai pembahasan komputasi pada aras titik.
1. Aras Titik
Operasi pada aras titik hanya dilakukan pada pixel tunggal di dalam citra. Operasi
titik dikenal juga dengan nama operasi pointwise. Operasi ini terdiri dari
pengaksesan pixel pada lokasi yang diberikan, memodifikasinya dengan operasi
operasi lanjar (linear) atau nirlanjar (nonlinear), dan menempatkan nilai pixel
baru pada lokasi yang bersesuaian di dalam citra yang baru. Operasi ini diulangi
untuk keseluruhan pixel di dalam citra.
Secara matematis, operasi pada aras titik dinyatakan sebagai (Gambar 4.1):
fB(x, y) = Otitik{fA(x, y)} (4.1)
C
42 Pengolahan Citra Digital
yang dalam hal ini fA dan fB masing-masing adalah citra masukan dan citra
keluaran, Otitik dapat berupa operasi lanjar (linear) atau nirlanjar (nonlinear).
Yang dimaksud dengan operasi lanjar adalah operasi yang dapat dinyatakan
secara matematis sebagai persamaan lanjar, kebalikannya adalah persamaan
nirlanjar.
Otitik
{f(x,y)}
Gambar 4.1 Operasi aras titik pada citra dijital.
Operasi pada aras titik dapat dibagi menjadi tiga macam: berdasarkan intensitas,
berdasarkan geometri, atau gabungan keduanya.
a. Berdasarkan intensitas.
Nilai intensitas u suatu pixel diubah dengan transformasi h menjadi nilai
intensitas baru v:
v = h(u), u, v ∈ [0, L] (4.2)
Contoh operasi titik berdasarkan intensitas adalah operasi pengambangan
(thresholding). Pada operasi pengambangan, nilai intensitas pixel dipetakan ke
salah satu dari dua nilai, a1 atau a2, berdasarkan nilai ambang (threshold) T:
f(x, y)’ =



≥
<
Tyxfa
Tyxfa
),(,
),(,
2
1
(4.3)
Jika a1 = 0 dan a2 = 1, maka operasi pengambangan mentransformasikan citra
hitam-putih ke citra biner. Dengan kata lain, nilai intensitas pixel semula
dipetakan ke dua nilai saja: hitam dan putih. Nilai ambang yang dipakai dapat
berlaku untuk keseluruhan pixel atau untuk wilayah tertentu saja (berdasarkan
penyebaran nilai intensitas pada wilayah tersebut).
Operasi pengambangan pada citra Lena dengan fungsi transformasi:
f(x, y)’ =



≥
<
128),(,1
128),(,0
yxf
yxf
(4.4)
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 43
menghasilkan citra biner seperti yang diperlihatkan pada Gambar 4.2(a).
Persamaan 4.4 menyatakan bahwa 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) . Algoritma
transformasi citra hitam-putih menjadi citra biner ditunjukkan oleh Algoritma 4.1.
(a) (b)
Gambar 4.2. (a) Citra biner Lena, (b) citra negatif Lena
void biner(citra A, citra_biner B, int T, int N, int M)
/* Membuat citra biner dari citra A berdasarkan nilai ambang (threshold)
T yang dispesifikasikan. Ukuran citra adalah N × 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; /* atau diisi dengan 255 pada citra 8-bit */
}
}
Algoritma 4.1. Mengubah citra A menjadi citra biner.
Contoh operasi titik yang lain adalah:
44 Pengolahan Citra Digital
(i) Operasi negatif, yaitu mendapatkan citra negatif (negative image) meniru
film negatif pada fotografi dengan cara mengurangi nilai intensitas pixel dari
nilai keabuan maksimum. Misalnya pada citra dengan 256 derajat keabuan (8
bit), citra negatif diperoleh dengan persamaan:
f(x, y)’ = 255 – f(x, y) (4.5)
Sedangkan pada citra dengan 128 derajat keabuan,
f(x, y)’ = 127 – f(x, y) (4.6)
Hasil operasi negatif pada citra Lena diperlihatkan pada Gambar 4.2(b).
Algoritma pembentukan citra negatif untuk citra hitam-putih dengan 256
derajat keabuan ditunjukkan oleh Algoritma 4.2. Untuk citra berwarna, citra
negatifnya diperoleh dengan melakukan hal yang sama untuk setiap
komponen RGB.
void negatif(citra A, citra B, int N, int M)
/* Membuat citra negatif dari citra A. Hasilnya disimpan di dalam citra
B.
Ukuran citra adalah N × 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];
}
}
Algoritma 4.2. Membuat citra negatif dari sebuah citra dengan 256 derajat keabuan
(ii) Pemotongan (clipping)
Operasi ini dilakukan jika nilai intensitas pixel hasil suatu operasi
pengolahan citra terletak di bawah nilai intensitas minimum atau di atas nilai
intensitas maksimum:
f(x, y)’ =





<
≤≤
>
0),(,0
255),(0),,(
255),(,255
yxf
yxfyxf
yxf
(4.7)
Pemotongan (clipping) termasuk ke dalam operasi pengambangan juga.
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 45
(iii)Pencerahan citra (image brightening)
Kecerahan citra dapat diperbaiki dengan menambahkan (atau mengurangkan)
sebuah konstanta kepada (atau dari) setiap pixel di dalam citra.
Secara matematis operasi ini ditulis sebagai
f(x, y)’ = f(x, y) + b (4.8)
Jika b positif, kecerahan citra bertambah, sebaliknya jika b negatif kecerahan
citra berkurang. Lihat contoh pencerahan citra pada Gambar 4.3 yang
diterapkan pada citra Zelda. Semula citra Zelda tampak gelap, tetapi dengan
menambahkan setiap nilai pixel dengan b = 10, citra Zelda menjadi lebih
terang.
Persamaan 4.8 mengisyaratkan bahwa operasi pencerahan citra dapat
menghasilkan nilai di bawah nilai intensitas minimum atau d atas nilai
intensitas maksimum. Oleh karena itu, operasi clipping perlu diterapkan.
Algoritma pencerahan citra ntuk citra dengan 256 derajat keabuan
ditunjukkan oleh Algoritma 4.3.
void brightening(citra A, int b, citra B, int N, int M)
/* Pencerahan citra dengan cara menjumlahkan setiap pixel di dalam citra
A dengan sebuah skalar b. Hasil disimpan di dalam citra B. Citra A
berukuran N × M.
*/
{ int i, j, temp;
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;
}
}
Algoritma 4.3. Pencerahan citra
46 Pengolahan Citra Digital
Gambar 4.3. Kiri: citra Zelda (agak gelap); kanan: citra Zelda setelah operasi pencerahan
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) geometri (akan
dijelaskan kemudian).
c. Gabungan intensitas dan geometri.
Operasi ini tidak hanya mengubah nilai intensitas pixel, tapi juga mengubah
posisinya. Misalnya image morphing, yaitu perubahan bentuk objek beserta nilai
intensitasnya.
2. Aras Lokal
Operasi pada aras lokal menghasilkan citra keluaran yang intensitas suatu pixel
bergantung pada intensitas pixel-pixel tetangganya (Gambar 4.4).
fB(x, y)’ = Olokal{fA(xi, yj); (xi, yj) ∈ N(x, y) } (4.9)
(keterangan: N = neighborhood, yaitu pixel-pixel yang berada di sekitar (x, y) )
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 47
Olokal{f(xi,yi), (xi, yi) pixel
di sekitar (x,y)}
Gambar 4.4. Operasi aras lokal
Contoh operasi beraras lokal adalah operasi konvolusi untuk mendeteksi tepi
(edge detection) dan pelembutan citra (image smoothing). Gambar 4.5 adalah
citra Lena hasil pendeteksian tepi. Konsep pendeteksian tepi dan penghalusan
citra masing-masing akan dibahas di dalam Bab 8 dan Bab 7.
Gambar 4.5. 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 (Gambar 4.6).
fB(x, y)’ = Oglobal{fA(x, y)} (4.10)
48 Pengolahan Citra Digital
Oglobal{f(x, y)}
Gambar 4.6. Operasi aras global
Contoh operasi beraras global adalah operasi penyetaraan histogram untuk
meningkatkan kualitas citra (akan dibahas pada kuliah selanjutnya).
4. Aras Objek
Operasi jenis ini hanya dilakukan pada objek tertentu di dalam citra. Tujuan dari
operasi pada aras objek adalah untuk mengenali objek tersebut, misalnya dengan
menghitung rata-rata intensitas, ukuran, bentuk, dan karakteristik lain dari objek.
Operasi aras objek adalah operasi yang sangat sulit, karena sebelumnya kita harus
dapat menjawab: apakah objek itu, bagaimana menemukannya?
4.2 Operasi Aritmetika
Karena citra dijital adalah matriks, maka operasi-operasi aritmetika matriks juga
berlaku pada citra. Operasi matriks yang dapat dilakukan adalah:
1. Penjumlahan atau pengurangan antara dua buah citra A dan B:
C(x, y) = A(x, y) ± B(x, y),
2. Perkalian dua buah citra:
C(x, y) = A(x, y) B(x, y),
3. Penjumlahan/pengurangan citra A dengan skalar c:
B(x, y) = A(x, y) ± c,
4. Perkalian/pembagian citra A dengan sebuah skalar c:
B(x, y) = c ⋅ A(x, y)
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 49
Ditinjau dari aras komputasi, operasi aritmetika termasuk ke dalam operasi aras
titik. Penjelasan masing-masing operasi aritmetika matriks adalah sebagai berikut.
1. Penjumlahan Dua Buah citra
Persamaannya:
C(x, y) = A(x, y) + B(x, y) (4.11)
C adalah citra baru yang intensitas setiap pixel-nya adalah jumlah dari intensitas
tiap pixel pada A dan B. Jika hasil penjumlahan intensitas lebih besar dari 255,
maka intensitasnya dibulatkan ke 255. Algoritma penjumlahan dua buah citra
ditunjukkan pada Algoritma 4.4.
void addition(citra A, citra B, citra C, int N, int M)
/* Menjumlahkan dua buah citra A dan B menjadi citra baru, C.
Citra A, B, dan C masing-masing berukuran N × M.
*/
{ int i, j, temp;
for (i=0; i<=N-1; i++)
for (j=0; j<=M-1; j++)
{
temp=A[i][j] + B[i][j];
if (temp > 255) C[i][j]=255; else C[i][j]=temp;
}
}
Algoritma 4.4.Penjumlahan dua buah citra
Operasi penjumlahan citra dapat digunakan untuk mengurangi pengaruh derau
(noise) di dalam data, dengan cara merata-ratakan derajat keabuan setiap pixel
dari citra yang sama yang diambil berkali-kali. Misalnya untuk citra yang sama
direkam dua kali, f1 dan f2, lalu dihitung intensitas rata-rata untuk setiap pixel:
f ‘(x,y) =
2
1
{ f1(x, y) + f2(x, y) }
Hasil operasi mungkin bernilai riil, karena itu semua nilai riil tersebut perlu
dibulatkan ke nilai bulat terdekat, nilai maksimum adalah 255.
2. Pengurangan Dua Buah Citra
Persamaannya:
C(x, y) = A(x, y) – B(x, y) (4.12)
50 Pengolahan Citra Digital
C adalah citra baru yang intensitas setiap pixel-nya adalah selisih antara intensitas
pixel pada A dan B.
Ada kemungkinan hasil operasi ini menghasilkan nilai negatif, oleh karena itu,
operasi pengurangan citra perlu melibatkan operasi clipping.
Contoh aplikasi operasi pengurangan citra adalah untuk memperoleh suatu objek
dari dua buah citra [HEN95]. Citra pertama misalnya foto sebuah ruangan yang
kosong, citra kedua adalah foto ruangan yang sama tetapi ada orang di dalamnya.
Hasil pengurangan citra kedua dengan gambar pertama menghasilkan citra yang
latar belakangnya hitam, sedangkan latar depannya (objek orang) berwarna putih.
Algoritmanya ditunjukkan pada Algoritma 4.5.
void substraction (citra A, citra B, citra C, int N, int M)
/* Mengurangkan dua buah citra A dan B menajdi citra baru, C.
Citra A, B, dan C berukuran N × M.
*/
{ int i, j;
for (i=0; i<=N-1; i++)
for (j=0; j<=M-1; j++)
{
C[i][j]=A[i][j] - B[i][j];
if (C[i][j] != 0) C[i][j]=255; /* nyatakan objek berwarna putih */
}
}
Algoritma 4.5. Pengurangan dua buah citra untuk mendapatkan objek di dalamnya.
Pengurangan citra juga dapat digunakan untuk mendeteksi perubahan yang terjadi
selama selang waktu tertentu bila dua buah citra yang diambil adalah citra dari
adegan yang sama. Teknik semacam ini dipakai pada moving images.
3. Perkalian Citra
Persamaannya:
C(x, y) = A(x, y) B(x, y) (4.13)
Perkalian citra sering digunakan untuk mengoreksi kenirlanjaran sensor dengan
cara mengalikan matriks citra dengan matrik koreksi. Jadi, dalam hal ini A adalah
citra sedangkan B adalah matriks koreksi. Hasil operasi mungkin bernilai riil,
karena itu semua nilai dibulatkan ke nilai bulat terdekat, nilai maksimum adalah
255. Algoritma perkalian citra dengan matriks koreksi ditunjukkan pada Algoritma
4.3. Kita mengasumsikan di sini ukuran citra dan matriks koreksi adalah N × N.
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 51
Contoh 4.1. [GAL90] Mengalikan citra A dengan matriks koreksi:












24010230
25520024
2544061
255142120












1.00.01.04.0
0.00.00.03.0
1.00.00.03.0
1.01.04.03.0
=












25510342
25520032
2554062
255157170
Matriks citra A Matriks koreksi B Matriks keluaran C
void multiplication(citra A, matriks_riil B, citra C, int N)
/* Mengalikan buah citra A dengan matriks koreksi B menjadi citra C.
Citra A, matriks B, dan hasil perkalian C berukuran N × N.
*/
{ int i, j, temp;
for (i=0; i<=N-1; i++)
for (j=0; j<=N-1; j++)
{
temp=0;
for (k=0; k<=N-1; k++)
{
temp = temp + A[i][k]*B[k][j];
/* clipping */
if (temp < 0)
C[i][j] = 0;
else
if (temp > 255)
C[i][j]=255;
else
C[i][j]=temp;
}
}
}
Algoritma 4.6. Perkalian citra A dengan matriks koreksi B.
4. Penjumlahan/pengurangan citra dengan skalar
Persamaannya:
B(x, y) = A(x, y) ± c (4.14)
Penjumlahan citra A dengan skalar c adalah menambah setiap pixel di dalam citra
dengah sebuah skalar c, dan menghasilkan citra baru B yang intensitasnya lebih
terang daripada A. Kenaikan intensitas sama untuk seluruh pixel, yaitu c.
52 Pengolahan Citra Digital
Pengurangan citra A dengan skalar c adalah mengurangkan setiap pixel di dalam
citra dengah sebuah skalar c, dan menghasilkan citra baru B yang intensitasnya
lebih gelap daripada A. Penurunan intensitas sama untuk seluruh pixel, yaitu c.
Contoh operasi penjumlahan/pengurangan citra dengan sebuah skalar adalah
operasi pencerahan citra (lihat pembahasan operasi aras titik).
Baik operasi penjumlahan maupun pengurangan citra dengan sebuah skalar
melibatkan operasi clipping. Algoritma penjumlahan/pengurangan citra dengan
sebuah skalar sama seperti Algoritma 4.3.
5. Perkalian/pembagian Citra dengan Skalar
Persamaannya:
B(x, y) = c ⋅ A(x, y), dan B(x, y) = A(x, y) / c (4.15)
Perkalian citra A dengan skalar c menghasilkan citra baru B yang intensitasnya
lebih terang daripada A. Kenaikan intensitas setiap pixel sebanding dengan c.
Operasi perkalian citra dengan skalar dipakai untuk kalibrasi kecerahan
(callibration of brightness).
Pembagian citra A dengan skalar c menghasilkan citra baru B yang intensitasnya
lebih gelap daripada A. Penurunan intensitas setiap pixel berbanding terbalik
dengan c. Operasi pembagian citra dengan skalar dipakai untuk normalisasi
kecerahan (normalization of brightness).
Algoritma perkalian/pembagian citra dengan sebuah skalar serupa dengan
Algoritma 4.3, hanya saja operasi + atau – diganti dengan * atau /.
4.3 Operasi Boolean pada Citra
Selain operasi aritmetika, pemrosesan citra dijital juga melibatkan operasi
Boolean (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). (4.16)
(dalam notasi Bahasa C, ketiga operasi di atas ditulis sebagai:
C[x][y]=A[x][y]&B[x][y]
C[x][y]=A[x][y]|B[x][y]
C[x][y]=!A[x][y]
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 53
)
Operasi Boolean mempunyai terapan yang penting pada pemrosesan morfologi
pada citra biner. Pada citra biner, operasi not dapat digunakan untuk menentukan
komplemen dari citra (Gambar 4.7). Algoritma membentuk komplemen dari citra
biner ditunjukan oleh Algoritma 4.7.
(a) Ganesha (b) not Ganesha
Gambar 4.7. Hasil operasi not pada citra biner Ganesha
void not(citra_biner A, citra_biner B, int N, int M)
/* Membuat citra komplemen dari citra biner A. Komplemennya disimpan di
dalam B. Ukuran citra A adalah N × M.
*/
{ int i, j;
for (i=0; i<=N-1; i++)
for (j=0; j<=M-1; j++)
{
B[i][j] = !A[i][j];
}
}
Algoritma 4.7. Membuat citra komplemen dari citra biner
4.5 Operasi Geometri pada Citra
Pada operasi geometrik, koordinat pixel berubah akibat transformasi, sedangkan
intensitasnya tetap. Ini berbeda dengan dengan operasi aritmetika yang mana
koordinat pixel tetap sedangkan intensitasnya berubah.
54 Pengolahan Citra Digital
Operasi geometri yang dilakukan misalnya translasi, rotasi, penskalaan citra, dan
pencerminan citra (flipping). Pengubahan geometri dari citra f(x, y) menjadi citra
baru f ’(x, y) dapat ditulis sebagai:
f ‘(x’, y’) = f(g1(x, y), g2(x, y)) (4.17)
yang dalam hal ini, g1(x) dan g2(y) adalah fungsi transformasi geometrik. Dengan
kata lain,
x’ = g1(x, y);
y’ = g2(x, y) (4.18)
a. Translasi
Rumus translasi citra:
x’ = x + m
y’ = y + n (4.19)
yang dalam hal ini, m adalah besar pergeseran dalam arah x, sedangkan n adalah
besar pergeseran dalam arah y. Jika citra semula adalah A dan citra hasil translasi
adalah B, maka translasi dapat diimplementasikan dengan menyalin citra dari A
ke B:
B[x][y] = A[x + m][y + n] (4.20)
Algoritma translasi citra ditunjukkan oleh Algoritma 4.8, sedangkan contoh
translasi pada citra camera diperagakan pada Gambar 4.8.
void translation(citra A, citra B, int N, int M, int m, int n)
/* Mentranslasi citra A sejauh m, n. Hasil translasi disimpan di dala B.
Ukuran citra adalah N × M.
*/
{ int i, j;
for (i=0; i<=N-1; i++)`
for (j=0; j<=M-1; j++)
{
B[i][j]=A[i+m][j+n];
}
}
Algoritma 4.8. Operasi translasi citra
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 55
(x,y)
(x',y' )
x
y
θ
Gambar 4.9. Model rotasi citra
(a) (b)
Gambar 4.8. Translasi pada citra camera: (a) citra semula, (b) citra hasil translasi dengan m = 30 dan
n = 25. (Terima kasih kepada Nanda Firdausi M atas izin menggunakan output programnya).
b. Rotasi
Rumus rotasi citra:
x’ = x cos(θ) – y sin(θ)
y’ = x sin(θ) + y cos(θ) (4.21)
yang dalam hal ini, θ = sudut rotasi berlawanan arah jarum jam (lihat Gambar
4.9). Jika citra semula adalah A dan citra hasil rotasi adalah B, maka rotasi citra
dari A ke B:
B[x’][y’] = B[x cos(θ) – y sin(θ)][x cos(θ) + y cos(θ)] = A[x][y] (4.22)
56 Pengolahan Citra Digital
Jika sudut rotasinya 90°, maka implementasinya lebih mudah dilakukan dengan
cara menyalin pixel-pixel baris ke pixel-pixel kolom pada arah rotasi (Gambar
4.10). Rotasi 180° diimplementasikan dengan melakukan rotasi 90° dua kali.
Algoritma rotasi citra sejauh 90 derajat berlawanan arah jarum jam ditunjukkan
pada Algoritma 4.9, sedangkan rotasi citra sejauh 90 derajat searah jarum jam
ditunjukkan pada Algoritma 4.10 [HEN95].
====>
Gambar 4.10. Rotasi citra Lena sejauh 90° berlawanan arah jarum jam
void rotation90CCW(citra A, citra B, int N, int M)
/* Rotasi citra A sejauh 90° berlawanan arah jarum jam (CCW = Clock
Counter-wise).
Ukuran citra adalah N × M. Hasil rotasi disimpan di dalam citra B.
*/
{ int i, j, k;
for (i=0; i<=N-1; i++)
{
k=M-1;
for (j=0; j<=M-1; j++)
{
B[k][i]=A[i][j];
k--;
}
}
}
Algoritma 4.8. Rotasi citra sejauh 90° berlawanan arah jarum jam.
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 57
void rotation90CW(citra A, citra B, int N, int M)
/* Rotasi citra A sejauh 90° searah jarum jam (CW = Clock-wise).
Ukuran citra adalah N × M. Hasil rotasi disimpan di dalam cira B.
*/
{ int i, j, k;
k=M-1;
for (i=0; i<=N-1; i++)
{
for (j=0; j<=M-1; j++)
{
B[j][k]=A[i][j];
}
k--;
}
}
Algoritma 4.9. Rotasi citra sejauh 90° searah jarum jam.
c. Penskalaan Citra
Penskalaan citra, disebut juga image zooming, yaitu pengubahan ukuran citra
(membesar/zoom out atau mengecil/zoom in).
Rumus penskalaan citra:
x’ = sx ⋅ x
y’ = sy ⋅ y (4.23)
yang dalam hal ini, sx dan sy adalah faktor skala masing-masing dalam arah x dan
arah y.
Jika citra semula adalah A dan citra hasil penskalaan adalah B, maka penskalaan
citra dinyatakan sebagai:
B[x’][y’] = B[sx ⋅ x][ sy ⋅ y] = A[x][y] (4.24)
Operasi zoom out dengan faktor 2 (yaitu, sx = sy = 2) diimplementasikan dengan
menyalin setiap pixel sebanyak 4 kali (Gambar 4.11a). Jadi, citra 2 × 2 pixel akan
menjadi 4 × 4 pixel. Algoritma zoom out dengan faktor skala = 2 ditunjukkan oleh
Algoritma 4.10. Contoh citra yang diperbesar dua kali diperlihatkan pada Gambar
4.12 (citra kota San Fransisco).
Operasi zoom in (pengecilan) dengan faktor skala = ½ dilakukan dengan
mengambil rata-rata dari 4 pixel yang bertetangga menjadi 1 pixel (Gambar
4.11b).
58 Pengolahan Citra Digital
(a) (b)
Gambar 4.11. (a) Zoom out dengan faktor skala = 2, (b) Zoom in dengan faktor skala = 1/2
void zoom_out(citra A, citra B, int N, int M)
/* perbesaran citra A dengan faktor skala 2
Ukuran citra adalah N × M. Hasil perbesaran disimpa d dalam citra B.
*/
{ int i, j, k, m, n;
m=0; n=0;
for (i=0; i<=N-1; i++)
{
for (j=0; j<=M-1; j++)
{
B[m][n]= A[i][j];
B[m][n+1]= A[i][j];
B[m+1][n]= A[i][j];
B[m+1][n+1]= A[i][j];
n=n+2;
}
m=m+2;
n=0;
}
}
Algoritma 4.10. Zoom out dengan faktor skala = 2
Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 59
(a) (b)
Gambar 4.12. (a) Citra kota San Fransisco (ukuran normal), (b) citra kota San Fransisco setelah
diperbesar 2 kali (sx = sy = 2):
d. Flipping
Flipping adalah operasi geometri yang sama dengan pencerminan (image
reflection). Ada dua macam flipping: horizontal dan vertikal (Gambar 4.13).
(a) citra (b) flip horizontal (c) flip vertikal
Gambar 4.13. Flipping
Flipping horizontal adalah pencerminan pada sumbu-Y (cartesian) dari citra A
menjadi citra B, yang diberikan oleh:
B[x][y] = A[N – x][y] (4.25)
60 Pengolahan Citra Digital
Flipping vertikal adalah pencerminan pada sumbu-X (cartesian) dari citra A
menjadi citra B, yang diberikan oleh:
B[x][y] = A[x][M – y] (4.26)
Algoritma flipping vertikal ditunjukkan oleh Algoritma 4.11 [HEN95].
Pencerminan pada titik asal (cartesian) dari citra A menjadi citra B diberikan
oleh:
B[x][y] = A[N – x][M – y] (4.27)
Pencerminan pada garis x = y dari citra A menjadi citra B diberikan oleh:
B[x][y] = A[y][x]
void vertical_flip(citra A, citra B, int N, int M)
/* Flipping vertikal (pencerminan terhadap sumbu-X) terhadap citar A. */
Ukuran citra adalah N × M. Hasil flipping disimpan di dalam citra B.
*/
{ int i, j, k;
k=M-1;
for (i=0; i<=N-1; i++)
{
for (j=0; j<=M-1; j++)
{
B[k][j]=A[i][j];
}
k--;
}
}
Algoritma 4.11. Flipping vertikal.

More Related Content

What's hot

4 Menggambar Grafik Fungsi Dengan Matlab
4 Menggambar Grafik Fungsi Dengan Matlab4 Menggambar Grafik Fungsi Dengan Matlab
4 Menggambar Grafik Fungsi Dengan MatlabSimon Patabang
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
 
Contoh peyelesaian logika fuzzy
Contoh peyelesaian logika fuzzyContoh peyelesaian logika fuzzy
Contoh peyelesaian logika fuzzyZaenal Khayat
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristikBaguss Chandrass
 
nilai eigen dan vektor eigen
nilai eigen dan vektor eigennilai eigen dan vektor eigen
nilai eigen dan vektor eigenelmabb
 
Pcd 02 - bidang pengolahan citra
Pcd   02 - bidang pengolahan citraPcd   02 - bidang pengolahan citra
Pcd 02 - bidang pengolahan citraFebriyani Syafri
 
Metode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanMetode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanAururia Begi Wiwiet Rambang
 
Pengolahan Citra 2 - Pembentukan Citra Digital
Pengolahan Citra 2 - Pembentukan Citra DigitalPengolahan Citra 2 - Pembentukan Citra Digital
Pengolahan Citra 2 - Pembentukan Citra DigitalNur Fadli Utomo
 
Bab2 peubah-acak-dan-distribusi-peluang
Bab2 peubah-acak-dan-distribusi-peluangBab2 peubah-acak-dan-distribusi-peluang
Bab2 peubah-acak-dan-distribusi-peluangArif Windiargo
 
Materi kalkulus 1
Materi kalkulus 1Materi kalkulus 1
Materi kalkulus 1pt.ccc
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritriyana fairuz kholisa
 
Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Kelinci Coklat
 
Makalah metode posisi palsu
Makalah metode posisi palsuMakalah metode posisi palsu
Makalah metode posisi palsuokti agung
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Fatma Qolbi
 
Bab 11 citra biner
Bab 11 citra binerBab 11 citra biner
Bab 11 citra binerSyafrizal
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automataahmad haidaroh
 
Diagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi PenjualanDiagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi PenjualanRicky Kusriana Subagja
 

What's hot (20)

4 Menggambar Grafik Fungsi Dengan Matlab
4 Menggambar Grafik Fungsi Dengan Matlab4 Menggambar Grafik Fungsi Dengan Matlab
4 Menggambar Grafik Fungsi Dengan Matlab
 
2. galat
2. galat2. galat
2. galat
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
 
Contoh peyelesaian logika fuzzy
Contoh peyelesaian logika fuzzyContoh peyelesaian logika fuzzy
Contoh peyelesaian logika fuzzy
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristik
 
nilai eigen dan vektor eigen
nilai eigen dan vektor eigennilai eigen dan vektor eigen
nilai eigen dan vektor eigen
 
Pcd 02 - bidang pengolahan citra
Pcd   02 - bidang pengolahan citraPcd   02 - bidang pengolahan citra
Pcd 02 - bidang pengolahan citra
 
Metode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanMetode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier Simultan
 
Pengolahan Citra 2 - Pembentukan Citra Digital
Pengolahan Citra 2 - Pembentukan Citra DigitalPengolahan Citra 2 - Pembentukan Citra Digital
Pengolahan Citra 2 - Pembentukan Citra Digital
 
Bab2 peubah-acak-dan-distribusi-peluang
Bab2 peubah-acak-dan-distribusi-peluangBab2 peubah-acak-dan-distribusi-peluang
Bab2 peubah-acak-dan-distribusi-peluang
 
Materi kalkulus 1
Materi kalkulus 1Materi kalkulus 1
Materi kalkulus 1
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskrit
 
Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )
 
Makalah metode posisi palsu
Makalah metode posisi palsuMakalah metode posisi palsu
Makalah metode posisi palsu
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
 
Bab 11 citra biner
Bab 11 citra binerBab 11 citra biner
Bab 11 citra biner
 
Turunan numerik
Turunan numerikTurunan numerik
Turunan numerik
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
pewarnaan graf
pewarnaan grafpewarnaan graf
pewarnaan graf
 
Diagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi PenjualanDiagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi Penjualan
 

Similar to CITRA

05-Operasi-dasar-pengolahan-citra-2021 (1).pptx
05-Operasi-dasar-pengolahan-citra-2021 (1).pptx05-Operasi-dasar-pengolahan-citra-2021 (1).pptx
05-Operasi-dasar-pengolahan-citra-2021 (1).pptxnyomans1
 
Peningkatan Kualitas Citra Spasial.pdf
Peningkatan Kualitas Citra Spasial.pdfPeningkatan Kualitas Citra Spasial.pdf
Peningkatan Kualitas Citra Spasial.pdfAdam Superman
 
Tugas Citra Digital
Tugas Citra DigitalTugas Citra Digital
Tugas Citra Digitaldarwis darto
 
Bab 2 pembentukan citra
Bab 2 pembentukan citraBab 2 pembentukan citra
Bab 2 pembentukan citraSyafrizal
 
Pcd topik1 - fundamental
Pcd   topik1 - fundamentalPcd   topik1 - fundamental
Pcd topik1 - fundamentalSyafrizal
 
08-Image-Enhancement-Bagian1.pptx
08-Image-Enhancement-Bagian1.pptx08-Image-Enhancement-Bagian1.pptx
08-Image-Enhancement-Bagian1.pptxnyomans1
 
jurnal pengolahan citra
jurnal pengolahan citrajurnal pengolahan citra
jurnal pengolahan citraOvie Poenya
 
01-Pengantar-Pengolahan-Citra-Bag1-2021.pptx
01-Pengantar-Pengolahan-Citra-Bag1-2021.pptx01-Pengantar-Pengolahan-Citra-Bag1-2021.pptx
01-Pengantar-Pengolahan-Citra-Bag1-2021.pptxGabrielChristian14
 
pembentukan citra (pengolahan citra digital)
pembentukan citra (pengolahan citra digital)pembentukan citra (pengolahan citra digital)
pembentukan citra (pengolahan citra digital)khaerul azmi
 
pembentukan citra (pengolahan citra digital)
pembentukan citra (pengolahan citra digital)pembentukan citra (pengolahan citra digital)
pembentukan citra (pengolahan citra digital)khaerul azmi
 
Tugas Photosop vs Matlab
Tugas  Photosop vs MatlabTugas  Photosop vs Matlab
Tugas Photosop vs MatlabCacak_Deik
 
3 piksel_dan_histogram
 3 piksel_dan_histogram 3 piksel_dan_histogram
3 piksel_dan_histogramRoziq Bahtiar
 

Similar to CITRA (20)

05-Operasi-dasar-pengolahan-citra-2021 (1).pptx
05-Operasi-dasar-pengolahan-citra-2021 (1).pptx05-Operasi-dasar-pengolahan-citra-2021 (1).pptx
05-Operasi-dasar-pengolahan-citra-2021 (1).pptx
 
Peningkatan Kualitas Citra Spasial.pdf
Peningkatan Kualitas Citra Spasial.pdfPeningkatan Kualitas Citra Spasial.pdf
Peningkatan Kualitas Citra Spasial.pdf
 
Tugas Citra Digital
Tugas Citra DigitalTugas Citra Digital
Tugas Citra Digital
 
Bab 2 pembentukan citra
Bab 2 pembentukan citraBab 2 pembentukan citra
Bab 2 pembentukan citra
 
Bab 07a
Bab 07aBab 07a
Bab 07a
 
Bab 05
Bab 05Bab 05
Bab 05
 
Pcd topik1 - fundamental
Pcd   topik1 - fundamentalPcd   topik1 - fundamental
Pcd topik1 - fundamental
 
08-Image-Enhancement-Bagian1.pptx
08-Image-Enhancement-Bagian1.pptx08-Image-Enhancement-Bagian1.pptx
08-Image-Enhancement-Bagian1.pptx
 
jurnal pengolahan citra
jurnal pengolahan citrajurnal pengolahan citra
jurnal pengolahan citra
 
LN s04-machine vision-s2
LN s04-machine vision-s2LN s04-machine vision-s2
LN s04-machine vision-s2
 
01-Pengantar-Pengolahan-Citra-Bag1-2021.pptx
01-Pengantar-Pengolahan-Citra-Bag1-2021.pptx01-Pengantar-Pengolahan-Citra-Bag1-2021.pptx
01-Pengantar-Pengolahan-Citra-Bag1-2021.pptx
 
pembentukan citra (pengolahan citra digital)
pembentukan citra (pengolahan citra digital)pembentukan citra (pengolahan citra digital)
pembentukan citra (pengolahan citra digital)
 
pembentukan citra (pengolahan citra digital)
pembentukan citra (pengolahan citra digital)pembentukan citra (pengolahan citra digital)
pembentukan citra (pengolahan citra digital)
 
Tugas Photosop vs Matlab
Tugas  Photosop vs MatlabTugas  Photosop vs Matlab
Tugas Photosop vs Matlab
 
Laporan pcd 01
Laporan pcd 01Laporan pcd 01
Laporan pcd 01
 
Pcd 4
Pcd 4Pcd 4
Pcd 4
 
3 piksel_dan_histogram
 3 piksel_dan_histogram 3 piksel_dan_histogram
3 piksel_dan_histogram
 
Pcd 4
Pcd 4Pcd 4
Pcd 4
 
Pcd 2
Pcd 2Pcd 2
Pcd 2
 
Pcd 06 - perbaikan citra
Pcd   06 - perbaikan citraPcd   06 - perbaikan citra
Pcd 06 - perbaikan citra
 

More from Syafrizal

Tugas praktik elektronika dasar
Tugas praktik elektronika dasarTugas praktik elektronika dasar
Tugas praktik elektronika dasarSyafrizal
 
Praktik matlab
Praktik matlabPraktik matlab
Praktik matlabSyafrizal
 
Pcd topik4 - image restoration01
Pcd   topik4 - image restoration01Pcd   topik4 - image restoration01
Pcd topik4 - image restoration01Syafrizal
 
Praktik dengan matlab
Praktik dengan matlabPraktik dengan matlab
Praktik dengan matlabSyafrizal
 
Bab 1 pengantar pengolahan citra
Bab 1 pengantar pengolahan citraBab 1 pengantar pengolahan citra
Bab 1 pengantar pengolahan citraSyafrizal
 
Bab 15 pengenalan pola
Bab 15 pengenalan polaBab 15 pengenalan pola
Bab 15 pengenalan polaSyafrizal
 
Bab 13 steganografi dan watermarking
Bab 13 steganografi dan watermarkingBab 13 steganografi dan watermarking
Bab 13 steganografi dan watermarkingSyafrizal
 
Bab 10 pemampatan citra
Bab 10 pemampatan citraBab 10 pemampatan citra
Bab 10 pemampatan citraSyafrizal
 
Bab 8 pendeteksian tepi
Bab 8 pendeteksian tepiBab 8 pendeteksian tepi
Bab 8 pendeteksian tepiSyafrizal
 
Bab 6 histogram citra
Bab 6 histogram citraBab 6 histogram citra
Bab 6 histogram citraSyafrizal
 
Metafisika 3.a
Metafisika 3.aMetafisika 3.a
Metafisika 3.aSyafrizal
 

More from Syafrizal (20)

Tugas praktik elektronika dasar
Tugas praktik elektronika dasarTugas praktik elektronika dasar
Tugas praktik elektronika dasar
 
Pertemuan 4
Pertemuan  4Pertemuan  4
Pertemuan 4
 
Pertemuan 3
Pertemuan  3Pertemuan  3
Pertemuan 3
 
Pertemuan 2
Pertemuan  2Pertemuan  2
Pertemuan 2
 
Pertemuan 1
Pertemuan  1Pertemuan  1
Pertemuan 1
 
Praktik matlab
Praktik matlabPraktik matlab
Praktik matlab
 
Pcd topik4 - image restoration01
Pcd   topik4 - image restoration01Pcd   topik4 - image restoration01
Pcd topik4 - image restoration01
 
Praktik dengan matlab
Praktik dengan matlabPraktik dengan matlab
Praktik dengan matlab
 
Bab 1 pengantar pengolahan citra
Bab 1 pengantar pengolahan citraBab 1 pengantar pengolahan citra
Bab 1 pengantar pengolahan citra
 
Bab 15 pengenalan pola
Bab 15 pengenalan polaBab 15 pengenalan pola
Bab 15 pengenalan pola
 
Bab 13 steganografi dan watermarking
Bab 13 steganografi dan watermarkingBab 13 steganografi dan watermarking
Bab 13 steganografi dan watermarking
 
Bab 10 pemampatan citra
Bab 10 pemampatan citraBab 10 pemampatan citra
Bab 10 pemampatan citra
 
Bab 8 pendeteksian tepi
Bab 8 pendeteksian tepiBab 8 pendeteksian tepi
Bab 8 pendeteksian tepi
 
Bab 07b
Bab 07bBab 07b
Bab 07b
 
Bab 6 histogram citra
Bab 6 histogram citraBab 6 histogram citra
Bab 6 histogram citra
 
Pertemuan 4
Pertemuan  4Pertemuan  4
Pertemuan 4
 
Pertemuan 3
Pertemuan  3Pertemuan  3
Pertemuan 3
 
Pertemuan 2
Pertemuan  2Pertemuan  2
Pertemuan 2
 
Pertemuan 1
Pertemuan  1Pertemuan  1
Pertemuan 1
 
Metafisika 3.a
Metafisika 3.aMetafisika 3.a
Metafisika 3.a
 

Recently uploaded

Gandum & Lalang (Matius......13_24-30).pptx
Gandum & Lalang (Matius......13_24-30).pptxGandum & Lalang (Matius......13_24-30).pptx
Gandum & Lalang (Matius......13_24-30).pptxHansTobing
 
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfEstetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfHendroGunawan8
 
Silabus Mata Pelajaran Biologi SMA Kelas X.doc
Silabus Mata Pelajaran Biologi SMA Kelas X.docSilabus Mata Pelajaran Biologi SMA Kelas X.doc
Silabus Mata Pelajaran Biologi SMA Kelas X.docNurulAiniFirdasari1
 
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 TesalonikaMateri Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 TesalonikaSABDA
 
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdfJaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdfHendroGunawan8
 
slide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdfslide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdfNURAFIFAHBINTIJAMALU
 
Modul Ajar Informatika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Informatika Kelas 11 Fase F Kurikulum MerdekaModul Ajar Informatika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Informatika Kelas 11 Fase F Kurikulum MerdekaAbdiera
 
Product Knowledge Rapor Pendidikan - Satuan Pendidikan Dasmen&Vokasi.pptx
Product Knowledge Rapor Pendidikan - Satuan Pendidikan Dasmen&Vokasi.pptxProduct Knowledge Rapor Pendidikan - Satuan Pendidikan Dasmen&Vokasi.pptx
Product Knowledge Rapor Pendidikan - Satuan Pendidikan Dasmen&Vokasi.pptxKaista Glow
 
(NEW) Template Presentasi UGM yang terbaru
(NEW) Template Presentasi UGM yang terbaru(NEW) Template Presentasi UGM yang terbaru
(NEW) Template Presentasi UGM yang terbaruSilvanaAyu
 
Asi Eksklusif Dong - buku untuk para ayah - Robin Lim
Asi Eksklusif Dong - buku untuk para ayah - Robin LimAsi Eksklusif Dong - buku untuk para ayah - Robin Lim
Asi Eksklusif Dong - buku untuk para ayah - Robin LimNodd Nittong
 
Workshop penulisan buku (Buku referensi, monograf, BUKU...
Workshop penulisan buku                       (Buku referensi, monograf, BUKU...Workshop penulisan buku                       (Buku referensi, monograf, BUKU...
Workshop penulisan buku (Buku referensi, monograf, BUKU...Riyan Hidayatullah
 
materi pembelajaran tentang INTERNET.ppt
materi pembelajaran tentang INTERNET.pptmateri pembelajaran tentang INTERNET.ppt
materi pembelajaran tentang INTERNET.pptTaufikFadhilah
 
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdfWahyudinST
 
Kualifikasi dan Kompetensi Guru Profesi Kependidikan .pptx
Kualifikasi dan Kompetensi Guru Profesi Kependidikan .pptxKualifikasi dan Kompetensi Guru Profesi Kependidikan .pptx
Kualifikasi dan Kompetensi Guru Profesi Kependidikan .pptxSelviPanggua1
 
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptxSBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptxFardanassegaf
 
UNSUR - UNSUR, LUAS, KELILING LINGKARAN.pptx
UNSUR - UNSUR, LUAS, KELILING LINGKARAN.pptxUNSUR - UNSUR, LUAS, KELILING LINGKARAN.pptx
UNSUR - UNSUR, LUAS, KELILING LINGKARAN.pptxFranxisca Kurniawati
 
RPP PERBAIKAN UNTUK SIMULASI (Recovered).docx
RPP PERBAIKAN UNTUK SIMULASI (Recovered).docxRPP PERBAIKAN UNTUK SIMULASI (Recovered).docx
RPP PERBAIKAN UNTUK SIMULASI (Recovered).docxSyifaDzikron
 
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...NiswatuzZahroh
 
Panduan Mengisi Dokumen Tindak Lanjut.pdf
Panduan Mengisi Dokumen Tindak Lanjut.pdfPanduan Mengisi Dokumen Tindak Lanjut.pdf
Panduan Mengisi Dokumen Tindak Lanjut.pdfandriasyulianto57
 
Perbaikan ekonomi zaman Habibie (Offering A - 4-6) Pertemuan - 10.pdf
Perbaikan ekonomi zaman Habibie (Offering A - 4-6) Pertemuan - 10.pdfPerbaikan ekonomi zaman Habibie (Offering A - 4-6) Pertemuan - 10.pdf
Perbaikan ekonomi zaman Habibie (Offering A - 4-6) Pertemuan - 10.pdfAgungNugroho932694
 

Recently uploaded (20)

Gandum & Lalang (Matius......13_24-30).pptx
Gandum & Lalang (Matius......13_24-30).pptxGandum & Lalang (Matius......13_24-30).pptx
Gandum & Lalang (Matius......13_24-30).pptx
 
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfEstetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
 
Silabus Mata Pelajaran Biologi SMA Kelas X.doc
Silabus Mata Pelajaran Biologi SMA Kelas X.docSilabus Mata Pelajaran Biologi SMA Kelas X.doc
Silabus Mata Pelajaran Biologi SMA Kelas X.doc
 
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 TesalonikaMateri Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
 
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdfJaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
 
slide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdfslide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdf
 
Modul Ajar Informatika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Informatika Kelas 11 Fase F Kurikulum MerdekaModul Ajar Informatika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Informatika Kelas 11 Fase F Kurikulum Merdeka
 
Product Knowledge Rapor Pendidikan - Satuan Pendidikan Dasmen&Vokasi.pptx
Product Knowledge Rapor Pendidikan - Satuan Pendidikan Dasmen&Vokasi.pptxProduct Knowledge Rapor Pendidikan - Satuan Pendidikan Dasmen&Vokasi.pptx
Product Knowledge Rapor Pendidikan - Satuan Pendidikan Dasmen&Vokasi.pptx
 
(NEW) Template Presentasi UGM yang terbaru
(NEW) Template Presentasi UGM yang terbaru(NEW) Template Presentasi UGM yang terbaru
(NEW) Template Presentasi UGM yang terbaru
 
Asi Eksklusif Dong - buku untuk para ayah - Robin Lim
Asi Eksklusif Dong - buku untuk para ayah - Robin LimAsi Eksklusif Dong - buku untuk para ayah - Robin Lim
Asi Eksklusif Dong - buku untuk para ayah - Robin Lim
 
Workshop penulisan buku (Buku referensi, monograf, BUKU...
Workshop penulisan buku                       (Buku referensi, monograf, BUKU...Workshop penulisan buku                       (Buku referensi, monograf, BUKU...
Workshop penulisan buku (Buku referensi, monograf, BUKU...
 
materi pembelajaran tentang INTERNET.ppt
materi pembelajaran tentang INTERNET.pptmateri pembelajaran tentang INTERNET.ppt
materi pembelajaran tentang INTERNET.ppt
 
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
5. HAK DAN KEWAJIBAN JEMAAH indonesia.pdf
 
Kualifikasi dan Kompetensi Guru Profesi Kependidikan .pptx
Kualifikasi dan Kompetensi Guru Profesi Kependidikan .pptxKualifikasi dan Kompetensi Guru Profesi Kependidikan .pptx
Kualifikasi dan Kompetensi Guru Profesi Kependidikan .pptx
 
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptxSBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
SBM_Kelompok-7_Alat dan Media Pembelajaran.pptx
 
UNSUR - UNSUR, LUAS, KELILING LINGKARAN.pptx
UNSUR - UNSUR, LUAS, KELILING LINGKARAN.pptxUNSUR - UNSUR, LUAS, KELILING LINGKARAN.pptx
UNSUR - UNSUR, LUAS, KELILING LINGKARAN.pptx
 
RPP PERBAIKAN UNTUK SIMULASI (Recovered).docx
RPP PERBAIKAN UNTUK SIMULASI (Recovered).docxRPP PERBAIKAN UNTUK SIMULASI (Recovered).docx
RPP PERBAIKAN UNTUK SIMULASI (Recovered).docx
 
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
Pembuktian rumus volume dan luas permukaan bangung ruang Tabung, Limas, Keruc...
 
Panduan Mengisi Dokumen Tindak Lanjut.pdf
Panduan Mengisi Dokumen Tindak Lanjut.pdfPanduan Mengisi Dokumen Tindak Lanjut.pdf
Panduan Mengisi Dokumen Tindak Lanjut.pdf
 
Perbaikan ekonomi zaman Habibie (Offering A - 4-6) Pertemuan - 10.pdf
Perbaikan ekonomi zaman Habibie (Offering A - 4-6) Pertemuan - 10.pdfPerbaikan ekonomi zaman Habibie (Offering A - 4-6) Pertemuan - 10.pdf
Perbaikan ekonomi zaman Habibie (Offering A - 4-6) Pertemuan - 10.pdf
 

CITRA

  • 1. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 41 Bab 4 Operasi-operasi Dasar Pengolahan Citra Dijital itra dijital direpresentasikan dengan matriks. Operasi pada citra dijital pada dasarnya adalah memanipulasi elemen-elemen matriks. Elemen matriks yang dimanipulasi dapat berupa elemen tunggal (sebuah pixel), sekumpulan elemen yang berdekatan, atau keseluruhan elemen matriks. Di dalam bab ini akan diuraikan operasi-operasi dasar pada pengolahan citra dijital. 4.1 Aras Komputasi Operasi-operasi yang dilakukan pada pengolahan citra dapat dikelompokkan ke dalam empat aras (level) komputasi, yaitu aras titik, aras lokal, aras global, dan aras objek [JAI95]. Kita mulai pembahasan komputasi pada aras titik. 1. Aras Titik Operasi pada aras titik hanya dilakukan pada pixel tunggal di dalam citra. Operasi titik dikenal juga dengan nama operasi pointwise. Operasi ini terdiri dari pengaksesan pixel pada lokasi yang diberikan, memodifikasinya dengan operasi operasi lanjar (linear) atau nirlanjar (nonlinear), dan menempatkan nilai pixel baru pada lokasi yang bersesuaian di dalam citra yang baru. Operasi ini diulangi untuk keseluruhan pixel di dalam citra. Secara matematis, operasi pada aras titik dinyatakan sebagai (Gambar 4.1): fB(x, y) = Otitik{fA(x, y)} (4.1) C
  • 2. 42 Pengolahan Citra Digital yang dalam hal ini fA dan fB masing-masing adalah citra masukan dan citra keluaran, Otitik dapat berupa operasi lanjar (linear) atau nirlanjar (nonlinear). Yang dimaksud dengan operasi lanjar adalah operasi yang dapat dinyatakan secara matematis sebagai persamaan lanjar, kebalikannya adalah persamaan nirlanjar. Otitik {f(x,y)} Gambar 4.1 Operasi aras titik pada citra dijital. Operasi pada aras titik dapat dibagi menjadi tiga macam: berdasarkan intensitas, berdasarkan geometri, atau gabungan keduanya. a. Berdasarkan intensitas. Nilai intensitas u suatu pixel diubah dengan transformasi h menjadi nilai intensitas baru v: v = h(u), u, v ∈ [0, L] (4.2) Contoh operasi titik berdasarkan intensitas adalah operasi pengambangan (thresholding). Pada operasi pengambangan, nilai intensitas pixel dipetakan ke salah satu dari dua nilai, a1 atau a2, berdasarkan nilai ambang (threshold) T: f(x, y)’ =    ≥ < Tyxfa Tyxfa ),(, ),(, 2 1 (4.3) Jika a1 = 0 dan a2 = 1, maka operasi pengambangan mentransformasikan citra hitam-putih ke citra biner. Dengan kata lain, nilai intensitas pixel semula dipetakan ke dua nilai saja: hitam dan putih. Nilai ambang yang dipakai dapat berlaku untuk keseluruhan pixel atau untuk wilayah tertentu saja (berdasarkan penyebaran nilai intensitas pada wilayah tersebut). Operasi pengambangan pada citra Lena dengan fungsi transformasi: f(x, y)’ =    ≥ < 128),(,1 128),(,0 yxf yxf (4.4)
  • 3. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 43 menghasilkan citra biner seperti yang diperlihatkan pada Gambar 4.2(a). Persamaan 4.4 menyatakan bahwa 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) . Algoritma transformasi citra hitam-putih menjadi citra biner ditunjukkan oleh Algoritma 4.1. (a) (b) Gambar 4.2. (a) Citra biner Lena, (b) citra negatif Lena void biner(citra A, citra_biner B, int T, int N, int M) /* Membuat citra biner dari citra A berdasarkan nilai ambang (threshold) T yang dispesifikasikan. Ukuran citra adalah N × 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; /* atau diisi dengan 255 pada citra 8-bit */ } } Algoritma 4.1. Mengubah citra A menjadi citra biner. Contoh operasi titik yang lain adalah:
  • 4. 44 Pengolahan Citra Digital (i) Operasi negatif, yaitu mendapatkan citra negatif (negative image) meniru film negatif pada fotografi dengan cara mengurangi nilai intensitas pixel dari nilai keabuan maksimum. Misalnya pada citra dengan 256 derajat keabuan (8 bit), citra negatif diperoleh dengan persamaan: f(x, y)’ = 255 – f(x, y) (4.5) Sedangkan pada citra dengan 128 derajat keabuan, f(x, y)’ = 127 – f(x, y) (4.6) Hasil operasi negatif pada citra Lena diperlihatkan pada Gambar 4.2(b). Algoritma pembentukan citra negatif untuk citra hitam-putih dengan 256 derajat keabuan ditunjukkan oleh Algoritma 4.2. Untuk citra berwarna, citra negatifnya diperoleh dengan melakukan hal yang sama untuk setiap komponen RGB. void negatif(citra A, citra B, int N, int M) /* Membuat citra negatif dari citra A. Hasilnya disimpan di dalam citra B. Ukuran citra adalah N × 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]; } } Algoritma 4.2. Membuat citra negatif dari sebuah citra dengan 256 derajat keabuan (ii) Pemotongan (clipping) Operasi ini dilakukan jika nilai intensitas pixel hasil suatu operasi pengolahan citra terletak di bawah nilai intensitas minimum atau di atas nilai intensitas maksimum: f(x, y)’ =      < ≤≤ > 0),(,0 255),(0),,( 255),(,255 yxf yxfyxf yxf (4.7) Pemotongan (clipping) termasuk ke dalam operasi pengambangan juga.
  • 5. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 45 (iii)Pencerahan citra (image brightening) Kecerahan citra dapat diperbaiki dengan menambahkan (atau mengurangkan) sebuah konstanta kepada (atau dari) setiap pixel di dalam citra. Secara matematis operasi ini ditulis sebagai f(x, y)’ = f(x, y) + b (4.8) Jika b positif, kecerahan citra bertambah, sebaliknya jika b negatif kecerahan citra berkurang. Lihat contoh pencerahan citra pada Gambar 4.3 yang diterapkan pada citra Zelda. Semula citra Zelda tampak gelap, tetapi dengan menambahkan setiap nilai pixel dengan b = 10, citra Zelda menjadi lebih terang. Persamaan 4.8 mengisyaratkan bahwa operasi pencerahan citra dapat menghasilkan nilai di bawah nilai intensitas minimum atau d atas nilai intensitas maksimum. Oleh karena itu, operasi clipping perlu diterapkan. Algoritma pencerahan citra ntuk citra dengan 256 derajat keabuan ditunjukkan oleh Algoritma 4.3. void brightening(citra A, int b, citra B, int N, int M) /* Pencerahan citra dengan cara menjumlahkan setiap pixel di dalam citra A dengan sebuah skalar b. Hasil disimpan di dalam citra B. Citra A berukuran N × M. */ { int i, j, temp; 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; } } Algoritma 4.3. Pencerahan citra
  • 6. 46 Pengolahan Citra Digital Gambar 4.3. Kiri: citra Zelda (agak gelap); kanan: citra Zelda setelah operasi pencerahan 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) geometri (akan dijelaskan kemudian). c. Gabungan intensitas dan geometri. Operasi ini tidak hanya mengubah nilai intensitas pixel, tapi juga mengubah posisinya. Misalnya image morphing, yaitu perubahan bentuk objek beserta nilai intensitasnya. 2. Aras Lokal Operasi pada aras lokal menghasilkan citra keluaran yang intensitas suatu pixel bergantung pada intensitas pixel-pixel tetangganya (Gambar 4.4). fB(x, y)’ = Olokal{fA(xi, yj); (xi, yj) ∈ N(x, y) } (4.9) (keterangan: N = neighborhood, yaitu pixel-pixel yang berada di sekitar (x, y) )
  • 7. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 47 Olokal{f(xi,yi), (xi, yi) pixel di sekitar (x,y)} Gambar 4.4. Operasi aras lokal Contoh operasi beraras lokal adalah operasi konvolusi untuk mendeteksi tepi (edge detection) dan pelembutan citra (image smoothing). Gambar 4.5 adalah citra Lena hasil pendeteksian tepi. Konsep pendeteksian tepi dan penghalusan citra masing-masing akan dibahas di dalam Bab 8 dan Bab 7. Gambar 4.5. 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 (Gambar 4.6). fB(x, y)’ = Oglobal{fA(x, y)} (4.10)
  • 8. 48 Pengolahan Citra Digital Oglobal{f(x, y)} Gambar 4.6. Operasi aras global Contoh operasi beraras global adalah operasi penyetaraan histogram untuk meningkatkan kualitas citra (akan dibahas pada kuliah selanjutnya). 4. Aras Objek Operasi jenis ini hanya dilakukan pada objek tertentu di dalam citra. Tujuan dari operasi pada aras objek adalah untuk mengenali objek tersebut, misalnya dengan menghitung rata-rata intensitas, ukuran, bentuk, dan karakteristik lain dari objek. Operasi aras objek adalah operasi yang sangat sulit, karena sebelumnya kita harus dapat menjawab: apakah objek itu, bagaimana menemukannya? 4.2 Operasi Aritmetika Karena citra dijital adalah matriks, maka operasi-operasi aritmetika matriks juga berlaku pada citra. Operasi matriks yang dapat dilakukan adalah: 1. Penjumlahan atau pengurangan antara dua buah citra A dan B: C(x, y) = A(x, y) ± B(x, y), 2. Perkalian dua buah citra: C(x, y) = A(x, y) B(x, y), 3. Penjumlahan/pengurangan citra A dengan skalar c: B(x, y) = A(x, y) ± c, 4. Perkalian/pembagian citra A dengan sebuah skalar c: B(x, y) = c ⋅ A(x, y)
  • 9. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 49 Ditinjau dari aras komputasi, operasi aritmetika termasuk ke dalam operasi aras titik. Penjelasan masing-masing operasi aritmetika matriks adalah sebagai berikut. 1. Penjumlahan Dua Buah citra Persamaannya: C(x, y) = A(x, y) + B(x, y) (4.11) C adalah citra baru yang intensitas setiap pixel-nya adalah jumlah dari intensitas tiap pixel pada A dan B. Jika hasil penjumlahan intensitas lebih besar dari 255, maka intensitasnya dibulatkan ke 255. Algoritma penjumlahan dua buah citra ditunjukkan pada Algoritma 4.4. void addition(citra A, citra B, citra C, int N, int M) /* Menjumlahkan dua buah citra A dan B menjadi citra baru, C. Citra A, B, dan C masing-masing berukuran N × M. */ { int i, j, temp; for (i=0; i<=N-1; i++) for (j=0; j<=M-1; j++) { temp=A[i][j] + B[i][j]; if (temp > 255) C[i][j]=255; else C[i][j]=temp; } } Algoritma 4.4.Penjumlahan dua buah citra Operasi penjumlahan citra dapat digunakan untuk mengurangi pengaruh derau (noise) di dalam data, dengan cara merata-ratakan derajat keabuan setiap pixel dari citra yang sama yang diambil berkali-kali. Misalnya untuk citra yang sama direkam dua kali, f1 dan f2, lalu dihitung intensitas rata-rata untuk setiap pixel: f ‘(x,y) = 2 1 { f1(x, y) + f2(x, y) } Hasil operasi mungkin bernilai riil, karena itu semua nilai riil tersebut perlu dibulatkan ke nilai bulat terdekat, nilai maksimum adalah 255. 2. Pengurangan Dua Buah Citra Persamaannya: C(x, y) = A(x, y) – B(x, y) (4.12)
  • 10. 50 Pengolahan Citra Digital C adalah citra baru yang intensitas setiap pixel-nya adalah selisih antara intensitas pixel pada A dan B. Ada kemungkinan hasil operasi ini menghasilkan nilai negatif, oleh karena itu, operasi pengurangan citra perlu melibatkan operasi clipping. Contoh aplikasi operasi pengurangan citra adalah untuk memperoleh suatu objek dari dua buah citra [HEN95]. Citra pertama misalnya foto sebuah ruangan yang kosong, citra kedua adalah foto ruangan yang sama tetapi ada orang di dalamnya. Hasil pengurangan citra kedua dengan gambar pertama menghasilkan citra yang latar belakangnya hitam, sedangkan latar depannya (objek orang) berwarna putih. Algoritmanya ditunjukkan pada Algoritma 4.5. void substraction (citra A, citra B, citra C, int N, int M) /* Mengurangkan dua buah citra A dan B menajdi citra baru, C. Citra A, B, dan C berukuran N × M. */ { int i, j; for (i=0; i<=N-1; i++) for (j=0; j<=M-1; j++) { C[i][j]=A[i][j] - B[i][j]; if (C[i][j] != 0) C[i][j]=255; /* nyatakan objek berwarna putih */ } } Algoritma 4.5. Pengurangan dua buah citra untuk mendapatkan objek di dalamnya. Pengurangan citra juga dapat digunakan untuk mendeteksi perubahan yang terjadi selama selang waktu tertentu bila dua buah citra yang diambil adalah citra dari adegan yang sama. Teknik semacam ini dipakai pada moving images. 3. Perkalian Citra Persamaannya: C(x, y) = A(x, y) B(x, y) (4.13) Perkalian citra sering digunakan untuk mengoreksi kenirlanjaran sensor dengan cara mengalikan matriks citra dengan matrik koreksi. Jadi, dalam hal ini A adalah citra sedangkan B adalah matriks koreksi. Hasil operasi mungkin bernilai riil, karena itu semua nilai dibulatkan ke nilai bulat terdekat, nilai maksimum adalah 255. Algoritma perkalian citra dengan matriks koreksi ditunjukkan pada Algoritma 4.3. Kita mengasumsikan di sini ukuran citra dan matriks koreksi adalah N × N.
  • 11. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 51 Contoh 4.1. [GAL90] Mengalikan citra A dengan matriks koreksi:             24010230 25520024 2544061 255142120             1.00.01.04.0 0.00.00.03.0 1.00.00.03.0 1.01.04.03.0 =             25510342 25520032 2554062 255157170 Matriks citra A Matriks koreksi B Matriks keluaran C void multiplication(citra A, matriks_riil B, citra C, int N) /* Mengalikan buah citra A dengan matriks koreksi B menjadi citra C. Citra A, matriks B, dan hasil perkalian C berukuran N × N. */ { int i, j, temp; for (i=0; i<=N-1; i++) for (j=0; j<=N-1; j++) { temp=0; for (k=0; k<=N-1; k++) { temp = temp + A[i][k]*B[k][j]; /* clipping */ if (temp < 0) C[i][j] = 0; else if (temp > 255) C[i][j]=255; else C[i][j]=temp; } } } Algoritma 4.6. Perkalian citra A dengan matriks koreksi B. 4. Penjumlahan/pengurangan citra dengan skalar Persamaannya: B(x, y) = A(x, y) ± c (4.14) Penjumlahan citra A dengan skalar c adalah menambah setiap pixel di dalam citra dengah sebuah skalar c, dan menghasilkan citra baru B yang intensitasnya lebih terang daripada A. Kenaikan intensitas sama untuk seluruh pixel, yaitu c.
  • 12. 52 Pengolahan Citra Digital Pengurangan citra A dengan skalar c adalah mengurangkan setiap pixel di dalam citra dengah sebuah skalar c, dan menghasilkan citra baru B yang intensitasnya lebih gelap daripada A. Penurunan intensitas sama untuk seluruh pixel, yaitu c. Contoh operasi penjumlahan/pengurangan citra dengan sebuah skalar adalah operasi pencerahan citra (lihat pembahasan operasi aras titik). Baik operasi penjumlahan maupun pengurangan citra dengan sebuah skalar melibatkan operasi clipping. Algoritma penjumlahan/pengurangan citra dengan sebuah skalar sama seperti Algoritma 4.3. 5. Perkalian/pembagian Citra dengan Skalar Persamaannya: B(x, y) = c ⋅ A(x, y), dan B(x, y) = A(x, y) / c (4.15) Perkalian citra A dengan skalar c menghasilkan citra baru B yang intensitasnya lebih terang daripada A. Kenaikan intensitas setiap pixel sebanding dengan c. Operasi perkalian citra dengan skalar dipakai untuk kalibrasi kecerahan (callibration of brightness). Pembagian citra A dengan skalar c menghasilkan citra baru B yang intensitasnya lebih gelap daripada A. Penurunan intensitas setiap pixel berbanding terbalik dengan c. Operasi pembagian citra dengan skalar dipakai untuk normalisasi kecerahan (normalization of brightness). Algoritma perkalian/pembagian citra dengan sebuah skalar serupa dengan Algoritma 4.3, hanya saja operasi + atau – diganti dengan * atau /. 4.3 Operasi Boolean pada Citra Selain operasi aritmetika, pemrosesan citra dijital juga melibatkan operasi Boolean (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). (4.16) (dalam notasi Bahasa C, ketiga operasi di atas ditulis sebagai: C[x][y]=A[x][y]&B[x][y] C[x][y]=A[x][y]|B[x][y] C[x][y]=!A[x][y]
  • 13. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 53 ) Operasi Boolean mempunyai terapan yang penting pada pemrosesan morfologi pada citra biner. Pada citra biner, operasi not dapat digunakan untuk menentukan komplemen dari citra (Gambar 4.7). Algoritma membentuk komplemen dari citra biner ditunjukan oleh Algoritma 4.7. (a) Ganesha (b) not Ganesha Gambar 4.7. Hasil operasi not pada citra biner Ganesha void not(citra_biner A, citra_biner B, int N, int M) /* Membuat citra komplemen dari citra biner A. Komplemennya disimpan di dalam B. Ukuran citra A adalah N × M. */ { int i, j; for (i=0; i<=N-1; i++) for (j=0; j<=M-1; j++) { B[i][j] = !A[i][j]; } } Algoritma 4.7. Membuat citra komplemen dari citra biner 4.5 Operasi Geometri pada Citra Pada operasi geometrik, koordinat pixel berubah akibat transformasi, sedangkan intensitasnya tetap. Ini berbeda dengan dengan operasi aritmetika yang mana koordinat pixel tetap sedangkan intensitasnya berubah.
  • 14. 54 Pengolahan Citra Digital Operasi geometri yang dilakukan misalnya translasi, rotasi, penskalaan citra, dan pencerminan citra (flipping). Pengubahan geometri dari citra f(x, y) menjadi citra baru f ’(x, y) dapat ditulis sebagai: f ‘(x’, y’) = f(g1(x, y), g2(x, y)) (4.17) yang dalam hal ini, g1(x) dan g2(y) adalah fungsi transformasi geometrik. Dengan kata lain, x’ = g1(x, y); y’ = g2(x, y) (4.18) a. Translasi Rumus translasi citra: x’ = x + m y’ = y + n (4.19) yang dalam hal ini, m adalah besar pergeseran dalam arah x, sedangkan n adalah besar pergeseran dalam arah y. Jika citra semula adalah A dan citra hasil translasi adalah B, maka translasi dapat diimplementasikan dengan menyalin citra dari A ke B: B[x][y] = A[x + m][y + n] (4.20) Algoritma translasi citra ditunjukkan oleh Algoritma 4.8, sedangkan contoh translasi pada citra camera diperagakan pada Gambar 4.8. void translation(citra A, citra B, int N, int M, int m, int n) /* Mentranslasi citra A sejauh m, n. Hasil translasi disimpan di dala B. Ukuran citra adalah N × M. */ { int i, j; for (i=0; i<=N-1; i++)` for (j=0; j<=M-1; j++) { B[i][j]=A[i+m][j+n]; } } Algoritma 4.8. Operasi translasi citra
  • 15. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 55 (x,y) (x',y' ) x y θ Gambar 4.9. Model rotasi citra (a) (b) Gambar 4.8. Translasi pada citra camera: (a) citra semula, (b) citra hasil translasi dengan m = 30 dan n = 25. (Terima kasih kepada Nanda Firdausi M atas izin menggunakan output programnya). b. Rotasi Rumus rotasi citra: x’ = x cos(θ) – y sin(θ) y’ = x sin(θ) + y cos(θ) (4.21) yang dalam hal ini, θ = sudut rotasi berlawanan arah jarum jam (lihat Gambar 4.9). Jika citra semula adalah A dan citra hasil rotasi adalah B, maka rotasi citra dari A ke B: B[x’][y’] = B[x cos(θ) – y sin(θ)][x cos(θ) + y cos(θ)] = A[x][y] (4.22)
  • 16. 56 Pengolahan Citra Digital Jika sudut rotasinya 90°, maka implementasinya lebih mudah dilakukan dengan cara menyalin pixel-pixel baris ke pixel-pixel kolom pada arah rotasi (Gambar 4.10). Rotasi 180° diimplementasikan dengan melakukan rotasi 90° dua kali. Algoritma rotasi citra sejauh 90 derajat berlawanan arah jarum jam ditunjukkan pada Algoritma 4.9, sedangkan rotasi citra sejauh 90 derajat searah jarum jam ditunjukkan pada Algoritma 4.10 [HEN95]. ====> Gambar 4.10. Rotasi citra Lena sejauh 90° berlawanan arah jarum jam void rotation90CCW(citra A, citra B, int N, int M) /* Rotasi citra A sejauh 90° berlawanan arah jarum jam (CCW = Clock Counter-wise). Ukuran citra adalah N × M. Hasil rotasi disimpan di dalam citra B. */ { int i, j, k; for (i=0; i<=N-1; i++) { k=M-1; for (j=0; j<=M-1; j++) { B[k][i]=A[i][j]; k--; } } } Algoritma 4.8. Rotasi citra sejauh 90° berlawanan arah jarum jam.
  • 17. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 57 void rotation90CW(citra A, citra B, int N, int M) /* Rotasi citra A sejauh 90° searah jarum jam (CW = Clock-wise). Ukuran citra adalah N × M. Hasil rotasi disimpan di dalam cira B. */ { int i, j, k; k=M-1; for (i=0; i<=N-1; i++) { for (j=0; j<=M-1; j++) { B[j][k]=A[i][j]; } k--; } } Algoritma 4.9. Rotasi citra sejauh 90° searah jarum jam. c. Penskalaan Citra Penskalaan citra, disebut juga image zooming, yaitu pengubahan ukuran citra (membesar/zoom out atau mengecil/zoom in). Rumus penskalaan citra: x’ = sx ⋅ x y’ = sy ⋅ y (4.23) yang dalam hal ini, sx dan sy adalah faktor skala masing-masing dalam arah x dan arah y. Jika citra semula adalah A dan citra hasil penskalaan adalah B, maka penskalaan citra dinyatakan sebagai: B[x’][y’] = B[sx ⋅ x][ sy ⋅ y] = A[x][y] (4.24) Operasi zoom out dengan faktor 2 (yaitu, sx = sy = 2) diimplementasikan dengan menyalin setiap pixel sebanyak 4 kali (Gambar 4.11a). Jadi, citra 2 × 2 pixel akan menjadi 4 × 4 pixel. Algoritma zoom out dengan faktor skala = 2 ditunjukkan oleh Algoritma 4.10. Contoh citra yang diperbesar dua kali diperlihatkan pada Gambar 4.12 (citra kota San Fransisco). Operasi zoom in (pengecilan) dengan faktor skala = ½ dilakukan dengan mengambil rata-rata dari 4 pixel yang bertetangga menjadi 1 pixel (Gambar 4.11b).
  • 18. 58 Pengolahan Citra Digital (a) (b) Gambar 4.11. (a) Zoom out dengan faktor skala = 2, (b) Zoom in dengan faktor skala = 1/2 void zoom_out(citra A, citra B, int N, int M) /* perbesaran citra A dengan faktor skala 2 Ukuran citra adalah N × M. Hasil perbesaran disimpa d dalam citra B. */ { int i, j, k, m, n; m=0; n=0; for (i=0; i<=N-1; i++) { for (j=0; j<=M-1; j++) { B[m][n]= A[i][j]; B[m][n+1]= A[i][j]; B[m+1][n]= A[i][j]; B[m+1][n+1]= A[i][j]; n=n+2; } m=m+2; n=0; } } Algoritma 4.10. Zoom out dengan faktor skala = 2
  • 19. Bab 4_Operasi-operasi Dasar Pengolahan Citra Dijital 59 (a) (b) Gambar 4.12. (a) Citra kota San Fransisco (ukuran normal), (b) citra kota San Fransisco setelah diperbesar 2 kali (sx = sy = 2): d. Flipping Flipping adalah operasi geometri yang sama dengan pencerminan (image reflection). Ada dua macam flipping: horizontal dan vertikal (Gambar 4.13). (a) citra (b) flip horizontal (c) flip vertikal Gambar 4.13. Flipping Flipping horizontal adalah pencerminan pada sumbu-Y (cartesian) dari citra A menjadi citra B, yang diberikan oleh: B[x][y] = A[N – x][y] (4.25)
  • 20. 60 Pengolahan Citra Digital Flipping vertikal adalah pencerminan pada sumbu-X (cartesian) dari citra A menjadi citra B, yang diberikan oleh: B[x][y] = A[x][M – y] (4.26) Algoritma flipping vertikal ditunjukkan oleh Algoritma 4.11 [HEN95]. Pencerminan pada titik asal (cartesian) dari citra A menjadi citra B diberikan oleh: B[x][y] = A[N – x][M – y] (4.27) Pencerminan pada garis x = y dari citra A menjadi citra B diberikan oleh: B[x][y] = A[y][x] void vertical_flip(citra A, citra B, int N, int M) /* Flipping vertikal (pencerminan terhadap sumbu-X) terhadap citar A. */ Ukuran citra adalah N × M. Hasil flipping disimpan di dalam citra B. */ { int i, j, k; k=M-1; for (i=0; i<=N-1; i++) { for (j=0; j<=M-1; j++) { B[k][j]=A[i][j]; } k--; } } Algoritma 4.11. Flipping vertikal.