Download - komputasi terapan lanjutan
BAB 3
APLIKASI DI BIDANG KOMPUTER
KRIPTOGRAFI STEGANOGRAFI KOMUNIKASI DATA KOMPUTER GRAFIK PENGOLAHAN CITRA DIGITAL JARAK EUCLIDEAN UNTUK POLA PENGENALAN POLA WAJAH
3.1. KRIPTOGRAFI
Kriptografi adalah seni untuk mempelajari teknik2 encoding dan decoding dari pesan rahasia. Pesan-pesan yang belum di kodekan disebut plainteks, dan pesan-pesan yang telah dikodekan disebut chiperteks.
Proses konversi dari plainteks menjadi chiperteks disebut encoding dan sebaliknya disebut decoding
Ada beberapa cara peng-coding-an antara lain:
Substitusi Pada sistem ini mengkodekan antara huruf dengan huruf yang lain, misal: hurf a dengan m, huruf b dengan k, dst. Coding cara ini sangat sederhana, dengan teknik frekwensi kemungkinan huruf yg sering muncul dapat dipecahkan. Poligrafi Teknik dengan cara membagi plain text menjadi himpunan n-huruf, dan menggantinya dengan n-angka. Dengan menggunakan operasi perkalian matriks invers, hasilnya akan lebih baik dengan substitusi
Contoh, dengan menggunakan tabel konversi sbb:
A = 1 N = 14B = 2 O = 15C = 3 P = 16D = 4 Q = 17E = 5 R = 18F = 6 S = 19G = 7 T = 20H = 8 U = 21I = 9 V = 22J =10 W = 23K =11 X = 24L=12 Y = 25M=13 Z = 26
Contoh: Seseorang ingin mengirim pesan rahasia kepada temannya dengan menggunakan teknik perkalian matriks sistem poligrafi.
Misalkan matriks : C = B * A
Untuk mendapatkan matriks A, maka:B*A = C A = B-1 * C
Konsep ini digunakan untuk membuat kriptografi, yaitu pesan rahasia disimpan dalam matriks A, kemudian di-encode dengan menggunakan kunci B, dan pesan yang dikirimkan adalah matriks C. Dengan catatan kunci matriks B diketahui oleh si penerima.
Langkah pertama setiap huruf misal kita buat kode sbb:
A = -13 N = 13B = -12 O = 12C = -11 P = 11D = -10 Q = 10E = -9 R = 9F = -8 S = 8G = -7 T = 7H = -6 U = 6I = -5 V = 5J = -4 W = 4K = -3 X = 3L= -2 Y = 2M= -1 Z = 1
Spasi =15
Pesan yang dikirim adalah: MAGISTER ILMU KOMPUTERKunci : MADANI
Proses ENCODE
Pesan dirubah menjadi kode angka sbb:
-1 -13 -7 -5 8 7 -9 9 15 -5 -2 -1 6 15 -3 12 -1 11 6 7 -9 9
Pesan tsb dipotong-potong disimpan dalam matriks A (3xn)
15911311577
15711529813
961265951
A
Kunci dirubah menjadi: -1 -13 -10 -13 13 -5Disimpan dalam matriks B(mx3)
15510
151313
15131
B
C =
240 -169 -258 41 -171 -109 -7 -354 -121 134 159 44 132 -224 58 3 -315 150 225 -120 270 330 60 585
Matriks C = B * A
Matriks disusun kembali menjadi deret angka, yang merupakan pesan yang dikirimkan
isi pesan yang dikirim:
240 -121 -315 -169 134 150 -258 159 225 41 44 -120 -171 132 270 -109 -224 330 -7 58 60 -354 3 585
Proses DECODE
Si penerima pesan menerima pesan sederetan angka yang dikirim oleh temannya seperti deretan angka diatas. Pesan tersebut dipotong-potong dan dibuat dalam bentuk matrik yaitu matriks C
C =
240 -169 -258 41 -171 -109 -7 -354 -121 134 159 44 132 -224 58 3 -315 150 225 -120 270 330 60 585
Kunci matrik adalah:
15510
151313
15131
B
Penerima pesan menghitung invers dari B
0.1304 0.0217 0.0942 B-1 = 0.0580 0.0652 0.0604 -0.1884 -0.0870 -0.0879
Isi pesan rahasia nya didapat dari:
A = B-1 * C
Hasilnya: A =
-1.0000 -5.0000 -9.0000 -5.0000 6.0000 12.0000 6.0000 9.0000 -13.0000 8.0000 9.0000 -2.0000 15.0000 -1.0000 7.0000 15.0000 -7.0000 7.0000 15.0000 -1.0000 -3.0000 11.0000 -9.0000 15.0000
Matriks disusun kembali dan merupakan deretan angka sbb;
KODE_ISI_PESAN =
-1.0000 -13.0000 -7.0000 -5.0000 8.0000 7.0000 -9.0000 9.0000 15.0000 -5.0000 -2.0000 -1.0000 6.0000 15.0000 -3.0000 12.0000 -1.0000 11.0000 6.0000 7.0000 -9.0000 9.0000 15.0000 15.0000
MAGISTER ILMU KOMPUTER
Isi pesan dalam huruf:
TUGAS LATIHAN:
Si Ali menerima pesan dari sahabatnya Udin berupa pesan rahasia sbb;
Kunci : KOMPUTER
Apakah bunyi pesan yang ditulis oleh Udin ? Dengan kode huruf dan angka seperti contoh diatas
-105 24 -101 145 -279 -189 261 57 -97 -32 -21 -278 -11 282 131 -59 -252 -171 -96 27 -234 24 -45 -246 -61 48 -73
3.2. STEGANOGRAFI
Steganografi merupakan seni untuk menyembunyikan pesan di dalam media digital sedemikian rupa sehingga orang lain tidak menyadari ada pesan didalam media tersebut.
Dalam bidang keamanan komputer, steganografi digunakan untuk menyembunyikan data rahasia.
Pada steganografi walaupun enkripsi berhasil dipecahkan pesan atau rahasia tetap tidak terlihat, pada kriptografi pesan disembunyikan secara “acak” sehingga pada kasus2 tertentu dapat mengundang kecurigaan.
APA STEGANOGRAFI ITU?
“steganos” (B.Yunani) tulisan tersembunyi(covered writing)
Steganography: ilmu dan seni menyembunyikan (embedded) informasi dengan cara menyisipkan pesan di dalam pesan lain.
Steganografi digital: steganografi pada data digital dengan menggunakan komputer digital
Steganografi membutuhkan dua properti: wadah penampung dan data rahasia yang akan disembunyikan. Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya pesan: teks, citra, audio dan video.
Wadahpenampung Data rahasia Stego+ =
17
PESAN (MESSAGE)
1. Teks “Torang semua
bersodara”
2. Audio
3. Gambar (image)
4. Video
Sebagai contoh sederhana kita akan menggunakan matriks sebagai wadah penampung dan data rahasia disisipkan pada matriks tersebut.Misalkan data rahasia yang akan dikirim: BUDILUHURYang panjangnya 9 karakter.
Proses Encode:Tabel huruf:
A B C D E F G H I J K L M N O
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
P Q R S T U V W X Y Z
16 17 18 19 20 21 22 23 24 25 26
Konversi: BUDILUHUR menjadi 2 21 4 9 12 21 8 21 18
Selanjutnya dibuat matrik berukuran 9 x 9, sesuai dengan panjang data rahasia 9 karakter, data disimpan dengan kunci posisi 6, 9 artinya data rahasia diletakkan pada hitungan ke-6, dengan panjang karakter 9.
5 10 8 12 8 2 8 9 6 4 8 46 3 1 6 21 9 2133 23 54 7 8 9 4 12 15 21 3 42 15 66 5 12 9 3023 24 21 26 31 8 15 16 50 3 31 21 30 0 8 5 15 18 9 8 7 6 5 4 32 3 15 10 18 20 30 22 50 6 8 3622 4 5 8 55 7 12 15 32
Matriks yang sudah disisipi data rahasia diatas diatas disebut matriks stego
PROPERTI STEGANOGRAFI
1. Embedded message (hiddentext): pesan yangdisembunyikan.
2. Cover-object (covertext): pesan yang digunakan untuk menyembunyikan embedded message.
3. Stego-object (stegotext): pesan yang sudah berisi pesan embedded message.
4. Stego-key: kunci yang digunakan untuk menyisipan pesan dan mengekstraksi pesan dari stegotext.
Encoding(embeddin)
covertext
h iddentext
key
Decoding(extraction)
stegotext
key
hiddentext
covertext
CONTOH
Lupakan asal rumor itu, jaga aga matamu sehat atau turunkan ubanmu
Covertext: upakan sal umor tu aga aga atamu ehat tau turunkan banmu
Hiddentext: Lari jam satu
Stegotext: Lupakan asal rumor itu, jaga aga matamu sehat atau turunkan ubanmu
23
METODE LSB (SPATIAL DOMAIN)
Mengganti bit LSB dengan bit data.
11010010
MSB LSB
LSB = Least Significant BitMSB = Most Siginificant Bit
Mengubah bit LSB hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya tidak berpengaruh terhadap persepsi visual/auditori.
Misalkan penyisipan pada citra 24-bit. Setiap pixel panjangnya 24 bit (3 x 3 byte, masing-masing
komponen R (1 byte), G (1 byte), dan B (1 byte))
00110011 10100010 11100010(misal pixel berwarna merah)
Misalkan embedded message: 010
Encoding:
00110010 10100011 11100010(pixel berwarna “merah berubah sedikit”, tidak dapatdibedakan secara visual dengan citra aslinya)
Jika pesan = 10 bit, maka jumlah byte yang digunakan = 10 byte
Contoh susunan byte yang lebih panjang:
00110011 10100010 11100010 10101011 00100110
10010110 11001001 11111001 10001000 10100011
Pesan: 1110010111
Hasil penyisipan pada bit LSB:
00110011 10100011 11100011 10101010 00100110
10010111 11001000 11111001 10001001 10100011
26
METODE LSB Ukuran data yang akan disembunyikan
bergantung pada ukuran cover-object.
Citra 24-bit ukuran 256 256 pixel = 65536 pixel.
Setiap pixel berukuran 3 byte (komponen RGB), berarti ada 65536 3 = 196608 byte.
Setiap 1 byte menyembunyikan satu bit di LSB-nya, maka ukuran data yang dapat disembunyikan:
196608/8 = 24576 byte
Istilah keilmuan serumpun terasa memberikan distorsi persepsi pada maksud sebenarnya. Persepsi yang segera terbentuk dengan istilah tesrebut adalah eprtumbuhan dari akar-akar ilmu membentuk suatu rumpun, yang berarti bahwa nuansa historis organisasi/kelompok/unit yang mewadahinya.
Hiddentext Covertext Stegotext
3.3. KOMUNIKASI DATA
Sebuah pesan yang ditransmisikan ( seperti data lewat satelit) akan mengalami perubahan akibat gangguan dari luar, karena petir, atau cuaca yang tidak menguntungkan. Proses pengiriman data yang telah di-encode akan dikembalikan semula sesuai dengan data aslinya yaitu decode.
Proses pengiriman data yang berulang-ulang untuk memastikan data mengalami perubahan atau tidak sudah tidak efisien lagi dan memerlukan banyak memori.
Aplikasi ini akan menguji cara2 men-decode pesan setelah pesan tersebut mengalami distorsi (perubahan) yang diakibatkan oleh sebuah gangguan (noise).
Teknik dasar pengkodean
Pesan dikirim dalam bentuk deretan bilangan biner 0 dan 1, misalnya 10011, 01101, dstApabila data tersebut dikirim maka karena ada gangguan maka data pesan yang diterima akan mengalami perubahan.
Misal data yang dikirim T = 1011010, Maka data yang diterima menjadi R = 1001010Berarti terjadi kesalahan pada posisi ke-3Kalau pengirimana data dilakukan berulang-ulang akan banyak membutuhkan memori dan tidak efisien
Kode Hamming
Salah satu metode yang dipakai untuk deteksi kesalahan (error detecting) dan mengkoreksi data dengan menggunakan kode Hamming. Kode ini menggunakan matriks dengan data biner sbb;
1 0 1 0 1 0 1H = 0 1 1 0 0 1 1 0 0 0 1 1 1 1
Dan
1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1
G =
Matrik H dan G adalah matriks dengan elemen data biner, operasi penjumlahan dan perkalian sesuai dengan aturan biner, seperti: 0+0 = 0, 1+0=1, 0+1=1, 1+1=0 dan 0.0=0, 1.0=0, 0.1=0, 1.1=1
Proses Encode
Untuk encode, kita bentuk kombinasi linier v dari setiap elemen kolom matriks G, dengan 4 digit dari u = (u1 u2 u3 u4) sebagai koefisiennya. Dengan kata lain v diperoleh dengan cara sbb: v = [u1 u2 u3 u4] * G
Data v inilah yang nantinya akan dikirim
Proses Decode
Misalkan pesan yang diterima adalah w = (w1 w2 w3 w4), dan wT adalah transpose matriks w
1.Hitung h*wT 2.Jika h*wT = 0, maka tidak terjadi kesalahan data, artinya w = u3.Jika h*wT = ki, maka terjadi kesalahan data pada kolom ke i (ki = kolom ke-i dari matriks H)
Contoh:Misalkan data yang dikirim u = (1 0 1 1), data ini harus di-encode dahulu.Prosen Encode v = (u1 u2 u3 u4) * G
1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1
v = (1 0 1 1)
v = (1 0 1 1 0 1 0)
Data inilah yang dikirimkan
a. Misalkan data yang diterima adalah w = (1 0 1 1 0 1) Data ini harus di-decode dahulu
Proses Decode
1 0 1 0 1 0 1H * wT = 0 1 1 0 0 1 1 0 0 0 1 1 1 1
1011010
0= 0 0
Karena h*wT = 0, maka tidak terjadi kesalahan, artinyau = (1 0 1 1)
b. Misalkan data yang diterima adalah w = (1 0 0 1 0 1) Data ini harus di-decode dahulu
Proses Decode
1 0 1 0 1 0 1H * wT = 0 1 1 0 0 1 1 0 0 0 1 1 1 1
1001010
1= 1 0
Karena h*wT = kolom ke-3 dari matriks H, maka terjadi kesalahan data pada posisi ke-3, artinyaw = (1 0 1 1 0 1 0) dan u = (1 0 1 1)
3.4. KOMPUTER GRAFIK
Transformasi GeometriSalah satu contoh transformasi linier adalah transformasi geometri.Transformasi geometri adalah mengubah kedudukan setiap titik yang disebabkan karena: Pergeseran (translasi) Penskalaan (scaling) Pemutaran (rotation) Pencerminan (reflection) dan shearing
Misalkan sebuah titi A(x,y) mengalami transformasi sehingga menjadi A’(x’,y’), menggunakan persamaan atau algoritma tertentu. Terdapat suatu fungsi T yang memetakan koordinat A menjadi koordinat A’ dan ditulis sebagai:
A’=T(A)
3.4.1. Translasi (pergeseran)
Sembarang titik pada bidang xy dapat digeser ke sembarang tempat dengan menambahkan besaran pada absis x dan ordinat y. Misalkan titik A(x,y) digeser searah sumbu x sejauh m dan searah sumbu y sejauh n, maka titik setelah pergeseran:
x’ = x + m atau x’ = x + 0y + my’ = y + n y’ = 0x + y + n
Dalam bentuk matriks:
n
m
y
x
y
x
10
01
'
'
A(x,y)
A’(x’,y’)
x x’
Y
y
y’
m
n
X
Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik: A(20,20), B(100,20) dan C(60,120), jika dilakukan translasi pada searah sumbu x, sejauh m = 80 dan searah sumbu y, sejauh n = 70Jawab:
707070
808080
1202020
6010020
10
01
'''
'''
cba
cba
yyy
xxx
1909090
140180100
Dengan demikian titik yang dimaksud adalah:A’(100,90), B’(180,90), dan C’(140,190)
0 50 100 150 200 250 3000
50
100
150
200
250
300TRANSLASI (PERGESERAN)
A B
C
C’
B’A’
%TRANSLASI (PERGESERAN)x=[20, 100, 60, 20];y=[20, 20, 120, 20];x2=x+80y2=y+70 plot(x,y,x2,y2)axis([0, 300, 0, 300])title('TRANSLASI (PERGESERAN)','FontSize',10)
Program dalam Matlab
3.4.2. Penskalaan (scalling)
Penskalaan adalah proses untuk memperbesar atau memperkecil suatu obyek atau gambar.Misal: titik A(x,y) diskalakan terhadap titik P(a,b) dengan faktor skala sebesar m searah sumbu x dan sebesar n searah sumbu y.
x’=m(x-a) + ay’=n(y-b) + bataux’=mx + a – may’=ny + b - nb
P(a,b)
A(x,y)
A’(x’,y’)
b
a x
y
x’
y’
x-a
y-b
nbb
maa
y
x
n
m
y
x
0
0
'
'
Atau dalam bentuk matriks:
Jika penskalaan pada sumbu koordinat P(0,0), maka a = 0 dan b =0, sehingga persamaannya menjadi:
y
x
n
m
y
x
0
0
'
'
Matrikas penyajian untuk penskalaan terhadap titik P(0,0) adalah:
n
mT
0
0
Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(20,20), B(100,20), C(60,120), jika dilakukan penskalaan dengan faktor skala : terhadap titik pusat P(0,0)
2
4
2404040
24040080
1202020
6010020
20
04
'''
'''
cba
cba
yyy
xxx
Jawab:
Jadi posisi segitiga setelah penskalaan:
A’(80,40), B’(400,40), dan C’(240,240)
-500 -400 -300 -200 -100 0 100 200 300 400 500-500
-400
-300
-200
-100
0
100
200
300
400
500PENSKALAAN (PERGESERAN)
Keluaran dalam matlab
%PENSKALAAN (SCALLING)x=[20, 100, 60, 20];y=[20, 20, 120, 20];x2=4*xy2=2*y plot(x,y,x2,y2)axis([-500, 500, -500, 500])title(‘PENSKALAAN (PERGESERAN)','FontSize',10)
Program dalam Matlab
3.4.3. Rotasi (Pemutaran)
Pemutaran adalah proses yang dilakukan untuk memutar suatu obyek atau gambar dengan pemutaran setiap titik ujung garis.
Pemutaran searah jarum jam akan dinyatakan dengan sudut negatif.
Pemutaran berlawanan arah jarum jam akan dinyatakan dengan sudut positif.
Misal: titik A(x,y) diputar dengan sudut putar α, dengan pusat putar P(a,b) akan dihasilkan titik A’(x’,y’).
A(x,y)
P(a,b)
A’(x’,y’)
x’
y’
α
a
b
x
y
Q
X
Y
Pandang segitiga siku-siku PAQ:
β
)2.......(..........coscos
)1........(..........sinsin
axrr
ax
byrr
by
R
Pandang segitiga siku-siku PA’R:
)4....(..........')cos('
)cos(
)3.....(..........')sin('
)sin(
axrr
ax
byrr
by
)5.......(')sin().cos()cos().sin()sin( byrrr
Persamaan (3):
)6.....(..........)sin()cos()sin()sin('
)cos()cos()sin()sin('
')cos()()sin()(
abbaxy
bbyaxy
bybyax
Masukan persamaan (1) dan (2) ke persamaan (5):
Persamaan (4):
)7.......(')sin().sin()cos().cos()cos( axrrr
Masukan persamaan (1) dan (2) ke persamaan (7):
)8.....().........sin()cos()sin()cos('
)sin()sin()cos()cos('
')sin()()cos()(
baayxx
abyaxx
axbyax
Persamaan (6) dan (8) disusun dalam bentuk matriks
sincos
sincos
cossin
sincos
'
'
abb
baa
y
x
y
x
y
x
y
x
cossin
sincos
'
'
Bila pusat rotasinya berada pada sumbu koordinat P(0,0), maka persamaan tersebut menjadi:
cossin
sincosT
Matriks penyajian untuk rotasi terhadap titik pusat P(0,0) adalah:
Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(20,20), B(100,20), C(60,120), jika dilakukan pemutaran dengan pusat sumbu koordinat dan rotasi putaran 180° berlawanan arah dengan arah jarum jam.
1202020
6010020
1202020
6010020
10
01
'''
'''
cba
cba
yyy
xxx
A’(-20,-20), B’(-100,-20), dan C’(-60,-120)
Jawab:
Jadi posisi segitiga setelah rotasi:
-300 -200 -100 0 100 200 300-300
-200
-100
0
100
200
300ROTASI SEBESAR 180 DERAJAT POSITIP
Keluaran dalam matlab:
Tugas dan Latihan:Buatlah script dalam matlab keluaran pada contoh diatas dan lakukan untuk rotasi putaran 45°, searah dan berlawanan arah jarum jam
3.4.4. Shearing
Shearing adalah suatu proses untuk mentransformasikan obyek dengan cara membebani obyek tersebut pada arah tertentu. Misalnya pembentukan huruf italic (miring) dari sembarang huruf.Proses shearing dari suatu titik A(x,y) menjadi titik A’(x’,y’) ke arah sumbu x sebesar m dan sumbu y sebesar n dinyatakan dalam persamaan:
m’ = x + myy’ = nx + y
y
x
n
m
y
x
1
1
'
'
Ditulis dalam bentuk matriks jadi:
Matriks penyajian untuk shearing terhadap titik pusat P(0,0) adalah:
1
1
n
mT
30032080
30014060
1202020
6010020
13
21
'''
'''
cba
cba
yyy
xxx
Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(20,20), B(100,20), C(60,120), jika dilakukan shearing dengan bobot kearah sumbu x adalah m = 2 dan bobot kearah sumbu y adalah n = 3 yang pusatnya terletak disumbu pusat koordinat.
Jadi posisi segitiga setelah dilakukan shearing:
A’(60,80), B’(140,320), dan C’(300,300)
Jawab:
-400 -300 -200 -100 0 100 200 300 400-400
-300
-200
-100
0
100
200
300
400SHEARING M = 2 DAN N = 3
Keluaran proses shearing dalam matlab:
Tugas dan Latihan:Buatlah script dalam matlab keluaran pada contoh shearing diatas dan lakukan untuk m dan n yang berbeda.
3.4.5. Pencerminan (Refleksi)
Refleksi sebuah garis g adalah transformasi yang memetahkan masing2 titik pada bidang ke dalam bayangan cerminnya terhadap g.Matriks penyajian untuk:
1. Refleksi terhadap sumbu y:
10
01T
y
xmenjadi
y
x
2. Refleksi terhadap sumbu x:
10
01T
y
xmenjadi
y
x
3. Refleksi terhadap sumbu y = x:
01
10T
x
ymenjadi
y
x
Contoh:Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(10,2), B(10,8), C(3,2), jika dilakukan pencerminan terhadap sumbu x, sumbu y, dan garis y = x
282
31010
282
31010
10
01
'''
'''
cba
cba
yyy
xxx
Jawab:1. Pencerminan terhadap sumbu x
Jadi posisi segitiga setelah dilakukan pencerminan terhadap sumbu x:
A’(-10,2), B’(-10,8), dan C’(-3,2)
2. Pencerminan terhadap sumbu y
282
31010
282
31010
10
01
'''
'''
cba
cba
yyy
xxx
Jadi posisi segitiga setelah dilakukan pencerminan terhadap sumbu y:
A’(10,-2), B’(10,-8), dan C’(3,-2)
3. Pencerminan terhadap garis y = x
31010
282
282
31010
01
10
'''
'''
cba
cba
yyy
xxx
Jadi posisi segitiga setelah dilakukan pencerminan terhadap garis y = x:
A’(2,10), B’(8,10), dan C’(2,3)
-15 -10 -5 0 5 10 15-15
-10
-5
0
5
10
15
Keluaran proses pencerminan terhadap sumbu x dalam matlab:
Tugas dan Latihan:Buatlah script dalam matlab keluaran pada contoh pencerminan diatas dan lakukan untuk pencerminan terhadap sumbu y dan pencerminan terhadap y = x.
3.4.6. Sistem Koordinat Homogem
Dari bentuk matriks penyajian, terlihat bahwa hanya proses translasi yang memerlukan operasi perkalian dan penjumlahan, sedangkan pada jenis transformasi yang lain cukup diperlukan operasi perkalian matriks.
Sistem koordinat homogen adalah sistem koordinat yang mempunyai dimensi lebih tinggi dari sistem koordinat yang ditinjau.
Misal, sistem koordinat homogen dari sistem koordinat 2 dimensi adalah sistem koordinat 3 dimensi dengan cara menentukan salah satu sumbunya sebagai suatu konstanta
Dengan menggunakan sistem koordinat homogenPersamaan umum transformasi titik A(x,y) menjadi A’(x’,y’)Dapat ditulis sebagai:
11001
'
'
y
x
tdb
tca
y
x
y
x
Dari persamaan tersebut diatas, masing-masing transformasi dapat dirumuskan kembali menjadi:
1100
10
01
1
'
'
100
10
01
y
x
n
m
y
x
n
m
T
1. Translasi:
1100
00
00
1
'
'
100
00
00
y
x
n
m
y
x
n
m
T
2. Scalling:
1100
0cossin
0sincos
1
'
'
100
0cossin
0sincos
y
x
aa
aa
y
x
aa
aa
T
3. Rotasi berlawanan arah jarum jam (sudut putar positif):
4. Shearing:
1100
01
01
1
'
'
100
01
01
y
x
n
m
y
x
n
m
T
1100
010
001
1
'
'
100
010
001
y
x
y
x
T
5. Refleksi terhadap sumbu x:
6. Refleksi terhadap sumbu y:
1100
010
001
1
'
'
100
010
001
y
x
y
x
T
1100
001
010
1
'
'
100
001
010
y
x
y
x
T
7. Refleksi terhadap garis y = x:
TUGAS DAN LATIHAN:
Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik A(10,2), B(10,8), dan C(3,2) jika dilakukan transformasi sebagai berikut:1.Translasi kearah sumbu x = 4, sumbu y = -22.Scalling dengan skala kearah sumbu x = 2, kearah sumbu y = -23.Diputar 90° berlawanan jarum jam4.Shearing kearah sumbu x = -2, ke arah sumbu y = 35.Refleksi terhadap sumbu x6.Refleksi terhadap sumbu y7.Refleksi terhadap garis y = x8.Buatlah script dalam matlab untuk masing2 soal diatas dan bentuk gambarnya.
3.5. Pengenalan Citra Digital
Sebuah citra gambar digital dapat mewakili sebuah matriks yang berukuran M kolom dan N baris
Perpotongan antara kolom dan baris disebut piksel, elemen terkecil dari sebuah citra.
Piksel mempunyai dua parameter:- koordinat- intensitas (warna)
Nilai yang terdapat pada koordinat (x,y) adalah f(x,y) yaitu besar intensitas (warna) dari piksel dititik tersebut.
Sebuah citra digital dapat dinyatakan dalam bentuk matriks sbb:
),(...)2,()1,(
............
),2(......)1,2(
),1(...)2,1()1,1(
),(
MNfNfNf
Mff
Mfff
yxf
Pengenalan Pola Citra Digital dengan Metode jarak Euclidean
------------------------------------------------------
Sebuah citra mempunyai beberapa ciri yang digunakan untuk mengenali citra tersebut, antara lain: Intensitas warna (σ) Nilai rata-rata (μ) Entropi (e) Energi (E) Homogeiniti (H) Contrast (C) dan lain lain
Standard deviasi Intensitas warna:
N
iii xx
N 1
2)(1
N
iX
N 11
1Nilai rata-rata:
n
iii xPxpe
1)(log)(Entropi:
M
x
N
yyxjP
NxMjE1 1
2)],([1Energi:
i j
dji
jiPH
1
),(Homogeiniti:
i j
d jiPjiC ),()( 2Contrast:
Jarak Euclidean:
jika diketahui dua buah vektor:
]..,..........,,,[
],..........,,,[
321
321
n
n
bbbbb
danaaaaa
Maka jarak Euclidean antara kedua vektor tsb.
2233
222
211 ).........()()()( nn babababaab
Jika n buah citra, masing2 mempunyai ciri2 yang dibentuk oleh vektor2 sbb:
][
..............................................
][
][
2222222
1111111
nnnnnnn hcpeC
hcpeC
hcpeC
Misal sebuah citra x yang akan diuji, citra mana yang paling mirip dengan citra x, dengan metode Euclidean dapat ditentukan besarnya jarak antar citra tsb.Citra yang paling mirip adalah citra yang mempunyai nilai jarak Euclidean paling kecil.
Contoh:4 buah citra tekstur sebagai berikut
spot_1 spot_2 spot_3 spot_line
Citra ke empat akan diuji, citra mana yang paling mirip terhadap citra ke empat (spot_line) tersebut dengan metode jarak Eucludean berdasarkan ciri:Intensitas warna (σ) Nilai rata-rata (μ) Entropi (e)
Pengenalan Citra dengan Metode Principal Component Analysis (PCA)
PCA merupakan salah satu metode ekstraksi fitur secara statistik. PCA merupakan sebuah cara untuk mengidentifikasi pola dalam kumpulan data untuk mencari persamaan dan perbedaannya. PCA sangat cocok untuk menemukan pola dalam data berdimensi tinggi .
Dalam konteks pengenalan wajah, PCA mencari eigenface yang merupakan kumpulan dari eigenvector. Eigenface adalah principal component (ciri-ciri penting) dari distribusi citra wajah yang didapatkan dari eigenvector dengan eigenvalue terbesar. Untuk mendapatkan eigenface, PCA melakukan perhitungan matrik kovarian dari kumpulan citra wajah latih setelah dilakukan normalisasi.
Eigenface tersebut akan menjadi dasar perhitungan face space yang merepresentasikan nilai bobot individu yang mewakili satu atau lebih citra wajah. Nilai bobot inilah yang digunakan untuk mengenali citra wajah uji dengan mencari jarak nilai bobot citra wajah uji dengan nilai bobot citra wajah latih.
Perhitungan jarak nilai bobot dapat dilakukan dengan perhitungan jarak Euclidian (Euclidian Distance).
START
Normalisasi Input
Mencari covariance matriks
Mencari eigen vektor dan eigen value
Mencari Principle Component eigenface
STOP
Langkah langkah pembentukan PCA
Mencari Covarian Matriks
Matriks covarian dirumuskan sbb:
1
)(')(
),cov(
n
n
iyiyxix
yx
304
132
211
x
Contoh: hitung covarian matriks dari:
Langkah langkah menghitung matriks kovarian
1). Hitung rata-rata kolom 1 sampai 3, didapat
2). Kurangkan kolom 1 sampai 3 matriks x ke masing2 rata-ratanya
3). Hitung matriks transpose dari langkah 2 diatas:
3
6
3
4
3
1x
)( xix -1.3333 -0.3333 0 -2.3333 1.6667 -1.0000 3.6667 -1.3333 1.0000
-1.3333 -2.3333 3.6667 -0.3333 1.6667 -1.3333 0 -1.0000 1.0000
')( xix
4). Covarian matriks
1
*'
)cov(
n
xixxixx
10.3333 -4.1667 3.0000 -4.1667 2.3333 -1.5000 3.0000 -1.5000 1.0000
cov(x) =
2 1 4 3 1 5 2 6 3 7 8 2 9 3 5 4
x =
Latihan, hitung covarian matriks berikut iniGunakan Matlab untuk menghitung langkah demi langkah
ans =
12.9167 -1.6667 2.5833 -0.7500 -1.6667 6.6667 3.0000 -0.3333 2.5833 3.0000 6.2500 -3.7500 -0.7500 -0.3333 -3.7500 2.9167
%COVARIAN MATRIKx=[2 1 4 3; 1 5 2 6; 3 7 8 2; 9 3 5 4]; %Langkah 1 (hitung rata2 kolom)a=mean(x(1:4,1)); b=mean(x(1:4,2)); c=mean(x(1:4,3)); d=mean(x(1:4,4)); %Langkah ke-2 (kurangkan masing2 kolom sampai n dengan masing2 rata2nya)x1=x(1:4,1)-a; x2=x(1:4,2)-b; x3=x(1:4,3)-c; x4=x(1:4,4)-d; %Langkah ke-3m=[x1 x2 x3 x4];n=m'; %Langkah ke-4 (Covarian matiks)C1=n*m/3C2=m*n/3
Mencari Eigen vektor dan Eigen value
Jika A adalah suatu matriks n x n, maka vektor tak nol x pada Rn disebut suatu vektor eigen dari A, jika Ax adalah suatu kelipatan skalar dari x, yaitu :
Ax = λxUntuk suatu skalar λ, skalar λ disebut nilai eigen (eigen value) dari A dan x dikatakan sebuah vektor eigen yang bersesuaian (berpadanan) dengan λ.Dari teorema di atas dapat dinyatakan, untuk mencari nilai eigen (nilai pribadi) dari sebuah matriks,
Ax =λ I xAtau ekivalen dengan :
(A - λ I )x = 0 Persamaan karakteristik A:
|A - λ I| = 0
Contoh diberikan matriks sbb:
26
17A
3
14
12
4
3
1
26
17
Eigenvector
Eigenvalue
Dimana λ = 4 adalah eigen value dari matriks A yg berhubungan dengan eigen vector
3
1x
Kita coba contoh diatas dengan menggunakan persamaan karakteristik:
|A - λ I| = 0
26
17
10
01
26
17IA
52
41
0)5()4(
20926)2()7(26
17
IA
Dengan demikian nilai eigenvalue ada 2 yaitu 4 dan 5Untuk λ = 5 eigenvektornya:
2
1x
(A - λ I )x = 0
02
126
17
x
x
02
136
12
x
x
2
1122
sx
xx
02316
0212
xx
xx
atau
s adalah skalar bilangan riel sembarang ≠ 0Jadi eigen vektornya adalah:
2
1x
112
332
310
A
Latihan: Tentukan eigenvalue dan eigenvektor:
Pengenalan Citra Wajah dengan PCA
Langkah2 Pengenalan Wajah dengan PCA
1. Buat citra gambar wajah berukuran sama (n x n) dan center, simpan citra tsb. kedalam data base
2. Baca tiap-tiap citra wajah tersebut, I = [I1 , I2 , I3 , .............I15]
),(...)2,()1,(
............
),2(......)1,2(
),1(...)2,1()1,1(
),(1
NNfNfNf
Nff
Nfff
yxI
I1 = citra ke-1I2 = citra ke-2dst.
3. Ubah dimensi citra wajah menjadi vektor (matrik baris) berukuran: 1 x N2
)],(.......)1,4()1,3()1,2()1,1([15
................................................................................
................................................................................
................................................................................
)],(.......)1,4()1,3()1,2()1,1([3
)],(.......)1,4()1,3()1,2()1,1([2
)],(.......)1,4()1,3()1,2()1,1([1
NNfffff
NNfffff
NNfffff
NNfffff
15
....
....
....3
2
1
15 2xn
Dari sini diperoleh vektor baru berukuran: 15 x N2
4. Hitung rata-rata vektor diatas, diperoleh vektor berukuran 1 x N2
15
115
1
ii
5. Kurangkan setiap vektor citra wajah dengan rata-rata nyaSehingga diperoleh vektor Φ berukuran 15 x N2
1515
...................
...................
...................33
32
31
15
...
...
...3
2
1
Diperoleh vektor :
6. Hitung covarian matriks
1
)(')(
),cov(
n
n
iyiyxix
yx
221
15
1)'(
)cov(2 xNNmatriksn
iii
A
dan
15151
15
1)'(
)cov(1 xmatriksn
iii
A
7. 1. Hitung nilai eigenvalue (λ) dan eigenvektor (Ui) dari A1
01 IA
Persamaan determinan diatas diselesaikan akan diperoleh 15 eigenvalue (λ), yang merupakan bilangan skalar:
15........,..........,3,2,1
Hitung eigenvektor untuk masing2 nilai λ, diurutkan dimulai dari nilai λ yang terbesar sampai yang terkecil
01 iUIiA
Akan diperoleh eigenvektor sbb:
115
...
...
...
...
12
11
1
u
u
u
U
215
...
...
...
...
22
21
2
u
u
u
U
1515
...
...
...
...
152
151
15
u
u
u
U..................
7. 2. Hitung eigenvektor (Vi) dari A2 Karena matriks A2 berukuran besar yaitu N2 x N2 , maka kita dapat menghitung ke 15 eigenvektor dari A2 dengan menggunakan:
iUiV '
1
...
...
...
...
12
11
1
2Nv
v
v
V
2
...
...
...
...
22
21
2
2Nv
v
v
V
15
...
...
...
...
152
151
15
2Nv
v
v
V..................
Representasi dari Wajah:Tiap-tiap wajah training dapat direpresentasikan sebagai kombinasi linier dari 15 vektor Vi , yaitu:
15
1iiviWj
ivjiw dimana
Φj adalah vektor wajah berukuran (1xN2 ) sedangkanvi berukuran (N2 x 1), maka wi berukuran (1 x 1)vi disebut eigenface
Tiap-tiap wajah training dinormalisasi sehingga citra wajah Φj yang belum dinormalisasi menjadi citra wajah Ωj yang sudah dinormalisasi
115
...
...
...
...
12
11
1
w
w
w
Pengenalan wajah dengan menggunakan eigenfaceMisal ada citra wajah yang akan dikenali ГLangkah langkahnya:1). Hitung: Φ = Г – ѱ ------ (1 x N2)2). Proyeksikan kedalam ruang wajah
15
1iiviW
dimanaiviw
3). Representasikan Φ sebagai Ω
15
...
...
...
...2
1
w
w
w
4). Tentukan distance error d:
kkd min
5). Jika d<T, maka citra wajah Гdikenali sebagai wajah ke-k dari sekumpulan training diatas
Dimana T = Threshold (didapat dari hasil percobaan)
% PENGENALAN POLA CITRA TEKSTUR METODE EUCLUDEAN clear, close allI1=imread('C:\Users\DELL\Documents\image\spot_1.jpg');I2=imread('C:\Users\DELL\Documents\image\spot_2.jpg');I3=imread('C:\Users\DELL\Documents\image\spot_3.jpg');I4=imread('C:\Users\DELL\Documents\image\spot_line.jpg'); av_1 = mean2(I1);ent_1 = entropy(I1);std_1 = std2(I1);C1=[std_1, av_1, ent_1]' av_2 = mean2(I2);ent_2 = entropy(I2);std_2 = std2(I2);C2=[std_2, av_2, ent_2]’
Contoh Program dalam Matlab
av_3 = mean2(I3);ent_3 = entropy(I3);std_3 = std2(I3);C3=[std_3, av_3, ent_3]' av_4 = mean2(I4);ent_4 = entropy(I4);std_4 = std2(I4);C4=[std_4, av_4, ent_4]' % MENCARI CITRA YANG PALING MIRIP TERHADAP CITRA 4 dist_14=sqrt((C1(1,1)-C4(1,1))^2+(C1(2,1)-C4(2,1))^2+(C1(3,1)-C4(3,1))^2)dist_24=sqrt((C2(1,1)-C4(1,1))^2+(C2(2,1)-C4(2,1))^2+(C2(3,1)-C4(3,1))^2)dist_34=sqrt((C3(1,1)-C4(1,1))^2+(C3(2,1)-C4(2,1))^2+(C3(3,1)-C4(3,1))^2)dist_44=sqrt((C4(1,1)-C4(1,1))^2+(C4(2,1)-C4(2,1))^2+(C4(3,1)-C4(3,1))^2)
clear allclc %PESAN YANG DIKIRIM: MAGISTER ILMU KOMPUTER%KATA KUNCI: MADANI%KODE HURUF DIBUAT:% A B C D E F G H I J K L M % -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 % N O P Q R S T U V W X Y Z% 13 12 11 10 9 8 7 6 5 4 3 2 1 %Proses ENCODEA=[ -1 -5 -9 -5 6 12 6 9; -13 8 9 -2 15 -1 7 15; -7 7 15 -1 -3 11 -9 15]; B=[ -1 -13 15; -13 13 15; -10 -5 15];
%Pesan yg dikirimC=B*A; %Proses DECODEinvers_B=inv(B); %ISI PESANA_r=invers_B*C;E=A_r; %ISI PESANPesan=[E(1:3,1); E(1:3,2); E(1:3,3); E(1:3,4); E(1:3,5); E(1:3,6); E(1:3,7); E(1:3,8)]';