Pengolahan Citra Digital
Struktur Data Citra Digital
&
Struktur Data Citra Digital
Citra dapat direpersentasikan kedalam
bentuk matrik atau array 2 dimensi.
Struktur data dari citra berupa elemen pada
matrik atau array 2 dimensi sama dengan
pixel (Picture Elemen) yang diamati atau
Operasi Dasar Citra
Citra sebagai matrik dapat dioperasikan
dengan cara, diantaranya :
1.
Operasi Aritmetika
2.
Operasi Logika (boolean)
Operasi Aritmetika
Menambah atau mengurangi Intensitas
Mengurangi atau menghilangkan noise
Operasi Dasar :
+ - / * pada 2 Citra
+ - / * pada 1 Citra dengan Konstanta/Skalar
Operasi Penambahan 2 Citra
C(x,y) = A(x,y) + B(x,y)
Penjumlahan 2 buah citra akan mengurangi noise pada citra
Algoritma Penjumlahan2Citra(citra A,B,C, Int x,y,c)
{Asumsi Citra adalah matrik ukuran x * y dengan total jumlah warna c} Kamus i,,j Integer
Jika hasil lebih besar dari kedalaman warna maka hasil sama dengan
Contoh
1
1
0
0
1
0
0
1
0
1
1
1
2
2
2
3
3
2
2
2
0
2
2
2
3
3
2
3
3
2
2
3
0
3
3
3
+
=Operasi Pengurangan 2 Citra
C(x,y) = A(x,y) - B(x,y)
Pengurangan 2 buah citra dapat digunakan untuk deteksi perubahan
gambar sehingga dapat digunakan untuk deteksi gerak atau keamanan
Algoritma Pengurangan2Citra(citra A,B,C, Int x,y,c)
{Asumsi Citra adalah matrik ukuran x * y dengan total jumlah warna c} Kamus i,,j Integer
Contoh
3
3
1
1
0
0
1
0
0
1
2
2
1
1
0
0
1
0
0
1
0
1
1
1
2
2
1
1
0
0
1
0
0
0
1
1
-
=Sistem Monitoring
Suatu citra dapat dinyatakan sebagai suatu matrik, maka jika suatu matrik x yang berisi gambar, maka algoritma untuk menampilkan gambar adalah sebagai berikut : Citra A adalah ruang kosong, sedangkan C citra hasil pengurangan.
A
B
Contoh
Algoritma Monitoring
Algoritma MinusImage(citra X,Y,Z;Int m,n,c)
{Asumsi citra m x n x c} Kamus i,,j : Integer
Rubah : Boolean
Operasi Citra & Skalar
B(x,y) = A(x,y) ± S
Digunakan untuk menaikan dan menurunkan intensitas cahaya.
Algoritma PenguranganCitraScalar(citra A,C, Int x,y,c,S)
{Asumsi Citra adalah matrik ukuran x * y dengan total jumlah warna c,
Contoh
1
2
3
0
2
3
0
2
3
1
2
1
0
0
1
0
0
1
0
0
1
0
0
0
-
=4 x 3 x 4
2
Operasi Citra & Skalar
B(x,y) = A(x,y) ± S
Operasi Penambahan
Algoritma PenambahanCitraScalar(citra A,C, Int x,y,c,S)
{Asumsi Citra adalah matrik ukuran x * y dengan total jumlah warna c, S
Skalar}
{Jika melebih nilai c maka sama dgn c, sedangkan untuk pengurangan jika
Contoh
1
1
2
0
1
2
0
1
2
1
1
1
3
3
3
2
3
3
2
3
3
3
3
3
+
=4 x 3 x 4
2
Kuis
1 2 3
0 1 2
3 0 1
2 3 0
1
2
3
0
2
2
3
2
1
2
2
0
A B
Operasi Perkalian
Operasi Perkalian 2 Citra
C[x,y] = A[x,y] * B[x,y]
Operasi ini biasanya digunakan untuk
Operasi perkalian dan pembagian Citra
dan Scalar
C[x,y] = A[x,y] * S akan menghasilkan intensitas lebih terang
Algoritma PerkalianCitraScalar(citra A,C, Int x,y,c,S)
{Asumsi Citra adalah matrik ukuran x * y dengan total jumlah warna c,
Operasi Pembagian Citra & Skalar
C[x,y] = A[x,y] / S akan menghasilkan intensitas lebih gelap
Algoritma PembagianCitraScalar(citra A,C, Int x,y,c,S)
{Asumsi Citra adalah matrik ukuran x * y dengan total jumlah
warna c, S Skalar}
Kamus I,j Int Deskripsi
For i 1 To x
For j 1 To Y
C[i,,j] = A[i,j] Div S Endfor
10 12 13
10 10
9
9
10
7
3
7
7
Div 2
Operasi Logika
T
F
T
T
F
F
F
F
T
F
T
T
T
F
T
F
Operasi Boolean pada Citra
Operasi ini menggunakan operator logika sebagai berikut : a.And
b.Or c.Not
T
F
F
T
And Or
Contoh
3 3 5 5 3 3 1 3 1
3 3 5 And 5 3 3 1 3 1
3 3 5 5 3 3 1 3 1
3 and 5 011 and 101 = 001 = 1
Soal
1
1
7
6
1
7
6
1
7
5
7
5
5
5
5
0
5
0
6
6
6
0
6
0
6
6
6
3 x 3 x 8
A 3 x 3 x 8B 3 x 3 x 8C
Invers
Algoritma InversImage(citra X;Int N,M,C)
{Asumsi citra N x M dengan warna C }
Kamus i,,j : Integer
Deskripsi
For i
1 To N
For j
1 To M
X[i,,j]
(C-1) - X[i,,j] {
X[i, j]
Not X[i, j]}
Contoh
0
1
1
3
0
0
1
2
4
4
1
2
5
4
4
4
15 14 14 12
15 15 14 13
11 11 14 13
10 11 11 11
Asli 4 x 4 x 16
Invers 4 x 4 x 16
Operasi Geometrik
Operasi yang digunakan dengan melakukan
manipulasi pada posisi pixel atau elemen matrik
sehingga berubah bentuk.
Operasi tersebut, diantaranya :
GetImage
ViewImage
Flipping (Pembalikan)
Translasi (Pergeseran)
Rotasi
Cutting (Pemotongan)
Operasi GetView
Operasi yang digunakan untuk mengambil citra
dengan membaca titik
Algoritma GetImage(citra X;Int N,M,C)
{Asumsi citra matrik nxm dengan warna c }
Kamus i,,j : Integer
Deskripsi
For i
1 To N
For j
1 To M
Getpixel(i, j,X[i, j])
Endfor
Operasi ViewImage
Operasi yang digunakan untuk membuat citra
dengan menempatkan titik pada layar.
Algoritma ViewImage(citra X;Int N,M,C)
{Asumsi citra matrik nxm dengan warna c }
Kamus i,,j : Integer
Deskripsi
For i
1 To N
For j
1 To M
Putpixel(i, j,X[i, j])
Endfor
Flipping
Operasi dibagi 2 (dua) yaitu :
Flipping Vertical, pertukaran pixel atas dan
bawah
Flipping Horizontal, pertukaran pixel kiri dan
Citra Asli Citra FV Citra FH
1 1 1 0 1 1 1 1 0 1 1 1
0 0 1 0 0 0 1 0 0 1 0 0
0 0 1 0 0 0 1 0 0 1 0 0
Algoritma Pembalikan
Flipping Vertical, pertukaran pixel atas dan bawah
Algoritma FVCitra(citra A,C;int n,m,c)
{Asumsi Citra matrik n x m x c} Kamus i,,j,k : Integer
Deskripsi
Flipping Horizontal, pertukaran pixel kiri dan kanan
Algoritma FHCitra(citra A,C;int n,m,c)
{Asumsi Citra matrik n x m x c} Kamus i,,j,k : Integer
Operasi Pergeseran
Operasi terhadap posisi pixel ke arah x dengan besaran m, dan ke arah y dengan besaran n.
B(x,y) A(x+m,y+n)
1 2 3 4 1 2 3
1 2 3 4 1 2 3
1 2 3 4 1 2 3
1 2 3 4
Algortitma PergeseranCitra(citra A,C;int x,y,n,m,c)
{Asumsi Citra matrik x x y x c}
Kamus i,,j : Integer
Deskripsi
For i
1 To x
For j
1 to y
C[i, ,j]
A[i+m,,j+n]
Operasi Rotasi
Operasi yang digunakan untuk memindahkan posisi pixel dengan sudut θ.
Rumus Rotasi
x’ = X Cos θ – Y Sin θ Y’ = X Sin θ + Y Cos θ Sehingga
C[x,y] A[X Cos θ – Y Sin θ, X Sin θ + Y Cos θ]
Untuk mempermudah pemahaman dalam perotasian dibatasi pembahsan dengan menggunakan rotasi dengan sudut 900. Ratosi dapat dilakukan
berdasarkan arah rotasi yaitu berdasarkan arah jarum jam atau sebaliknya.
Y
C
A θ
1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1
0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1
0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 1
1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1
A B C D
A B C D A : Asli
B : 900 Arah Jarum Jam C : 1800 Arah Jarum Jam
Algoritma Rotasi
(citra C,A; Int n,m,c)Algoritma Rotasi
Algoritma Rotasi180BerlawananArahJarumJam(citra C,A; Int n,m,c)
{Asumsi Citra matrik n x n x c} Kamus i,,j,k,l : Integer
Deskripsi l N+1
For i 1 To N
k M+1
For j 1 to M
C[l-i,k-j] A[i,j]
K k - 1
Operasi Zoom
Operasi pembesaran citra dengan cara melakukan
duplikasi terhadap pixel sebanyak z kali.
Zooming dengan nilai pembesaran lebih besar dari 1
(satu) akan membesar atau disebut juga Zoom Out,
Sedangkan jika pembesaran dengan nilai 1/z akan
mengecil atau Zoom In.
Pembesaran berdasarkan arah dapat dilakukan :
Zoom X
Zoom Y
Zoom Out
Pembesaran dimana nilai pembesaran diatas 1
Contoh Zoom Out dengan Z = 2
1 2 3 4 1 1 2 2 3 3 4 4 1 2 3 4 1 1 2 2 3 3 4 4 4 1 2 3 4 4 1 1 2 2 3 3 1 2 3 4 1 1 2 2 3 3 4 4 3 4 1 2 3 3 4 4 1 1 2 2 4 1 2 3 4 4 1 1 2 2 3 3 2 3 4 1 2 2 3 3 4 4 1 1 4 1 2 3 4 4 1 1 2 2 3 3 3 4 1 2 3 3 4 4 1 1 2 2 3 4 1 2 3 3 4 4 1 1 2 2 2 3 4 1 2 2 3 3 4 4 1 1 2 3 4 1 2 2 3 3 4 4 1 1
Algoritma
ZoomOutX
Penduplikasian pixel sebanyak z kali untuk tiap pixel ke arah x
Algortitma ZoomOutX(Citra1 A,Citra2 C;int n,m,c,Z)
{Asumsi A Citra1 matrik NxMxc C Citra2 matrik Nx(MxZ)xc dan Z nilai pembesaran} Kamus i,j,k,l : Integer
Deskripsi
Penduplikasian pixel sebanyak z kali untuk tiap pixel ke arah Y
Algortitma ZoomOutY(Citra1 A,Citra2 C;int n,m,c,Z)
Algoritma ZoomXY
ZoomOutXY
Penduplikasian pixel sebanyak z kali untuk tiap pixel ke arah x dan Y
Algortitma ZoomOutXY(Citra1 A,Citra2 C;int n,m,c,Z)
{Asumsi A Citra1 matrik NxMxc
C Citra2 matrik (NxZ)x(MxZ)xc dan Z nilai pembesaran}
ZoomIn
Perbesaran dengan 1/z kali
Zoom In dilakukan dengan cara :
1.
Ukuran dikali dengan perbesaran yang
dibulatkan keatas
Contoh Pembesaran ½
1 2 3 2 3
4 1 2 1/2 4 1
3 4 1
3 x 3 2 x 2 A C
Baris 3 x ½ = 1½ ≈ 2 Kolom 3 x ½ = 1½ ≈ 2
Sehingga Baris x Kolom = 2 x 2 ……….. (1) C[1,1] = ∑A[1..2,1..2]/4 = (1 + 2 + 4 + 1)/4 = 8/4 = 2 ………(2a) C[1,2] = ∑A[1..2,3]/2 = (3 + 2)/ 2 = 5/2 = 2 ½ = 3
Kuis
2. Flipping Vertical A 3. Flipping Horizontal B 4. Rotasi 90 A