BAB II
LANDASAN TEORI
2.1 CitraCitra adalah sebuah representasi informasi yang diciptakan dalam bentuk dua dimensi. Dimana representasi tersebut merupakan susunan array dari bilangan real atau bilangan kompleks yang terwakilkan dalam bilangan-bilangan bit terhingga. citra adalah gambar pada bidang dua dimensi (munir, 2004).
Citra tersusun dari titik-titik atau kumpulan elemen-elemen gambar yang disebut piksel (picture element). Piksel adalah element terkecil dari sebuah citra digital. Dengan jumlah total piksel adalah M x N. Dimana M merupakan nilai hight atau nilai tinggi citra digital dan N adalah nilai width atau nilai lebar citra digital.
2.2 Pemrosesan citra
Pemrosesan citra atau pengolahan citra merupakan proses mengolah piksel-piksel dalam citra digital untuk satu tujuan tertentu (Sutoyo, 2009). Beberapa alasan pengolahan citra digital antara lain:
1. Untuk mendapatkan citra asli dari suatu citra yang sudah buruk karena pengaruh derau. Proses pengolahan bertujuan mendapatkan citra yang diperkirakan mendekati citra yang sesungguhnya.
2. Untuk mendapatkan citra dengan karakteristik tertentu dan cocok secara visual yang dibutuhkan untuk tahap lebih lanjut dalam
pemrosesan analisis citra seperti croping. Croping dilakukan untuk mendapatkan bagian tertentu dalam sebuah citra dengan menggunakan ordinat piksel yang ada dalam sebuah citra, seperti pada gambar 2.1.
Gambar 2.1 Gambar croping (sumber help matlab)
Dalam proses akuisisi, citra yang akan diolah ditransformasikan dalam suatu representasi numerik. Pada proses selanjutnya representasi numerik itulah yang akan diolah secara digital oleh komputer. Sehingga dapat dilakukan manipulasi pada data-data yang berupa piksel dalam citra tersebut.
2.3 Format Citra Digital
Menurut intensitas warna format citra digital dapat dikategorikan sebagai berikut :
1. Citra RGB (True Color)
Citra RGB merupakan citra yang memiliki tiga komponen channel yaitu red, green, dan blue. Setiap channel memiliki nilai intensitas yang berbeda, tergantung warna yang dipresentasikan. Untuk monitor komputer, nilai rentang paling kecil = 0 dan paling besar = 255 ini didasarkan pada cara mengungkap 8 digit bilangan biner yang digunakan oleh mesin komputer. Dengan cara ini, akan diperoleh warna campuran sebanyak 256 x 256 x 256 =1677726 jenis warna. Sebuah jenis warna bisa dibayangkan sebagai sebuah fektor dalam ruang 3 dimensi yang biasanya dipakai dalam matematika, kordinatnya dinyatakan dalam bentuk 3 bilangan, yaitu komponen-x, komponen-y, dan komponen-z. Misalkan sebuah vektor dituliskan sebagai r = (x,y,z). Untuk warna, komponen – komponen tersebut digantikan oleh R(red),
G(green), dan B(blue). Jadi sebuah jenis warna dapat dituliskan
sebagai berikut: warna = RGB(30,75,255), Putih = (255,255,255), dan hitam = (0,0,0).
Gambar 2.2 : komposisi citra warna (Sumber : ittelkom.ac.id)
2. Citra Grayscale
Citra grayscale merupakan citra menggunakan fungsi intensitas untuk menentukan warna. Fungsi intensitas yang digunakan adalah fungsi intensitas warna keabuan ( hitam putih). Fungsi intensitas warna yang digunakan pada citra grayscale memiliki kedalaman piksel yang berbeda-beda. Namun dalam kebanyakan aplikasi, citra grayscale dikuantisasi pada level 256. Dan membutuhkan 1 byte (8 bit) untuk mempresentasikan setiap pikselnya.
Gambar 2.3 contoh gambar citra Grayscale (Sumber : ittelkom.ac.id)
3. Citra Biner
Citra biner atau citra monokrom merupakan citra yang memiliki 2 kemungkinan warna pada setiap pikselnya. Citra biner hanya dikuantisasikan pada 2 level yaitu 0 dan 1, sehingga setiap piksel pada citra cukup dipresentasikan dengan 1 bit (0 dan 1).
Gambar 2.4 : Contoh citra warna, citra grayscale dan citra biner (Sumber : ittelkom.ac.id)
Jika a1 = 0 dan a2 = 1, maka operasi ini akan mentransformasikan suatu citra menjadi citra biner. Misal suatu citra memiliki gray level 256, dipetakan menjadi citra biner, maka fungsi trasformasinya adalah sebagai berikut:
Piksel – piksel yang nilai intensitasnya dibawah 128 diubah menjadi hitam (nilai intensitas = 0), sedangkan piksel-piksel yang nilai intensitasnya diatas 128 diubah menjadi putih (nilai intensitas =1)
2.4Pengertian Frame dan Background
Pengertian frame dan background adalah, frame adalah bingkai yang mengelilingi sebuah citra sehingga akan memberikan tampilan citra lain sesuai dengan yang diinginkan. Namun frame yang digunakan harus sesuai dengan bentuk yang diinginkan sehingga dapat menghasilkan citra yang diharapkan. Sedangkan pengertian background adalah, latar atau dasar yang berupa citra dengan corak atau motif tertentu sehingga jika citra masukan, frame dan background digabungkan akan menghasilkan sebuah citra baru yang sesuai dengan yang diinginkan.
2.5Pengolahan citra
Pengolahan citra digital (digital image procesing) adalah proses manipulasi data citra digital dengan tujuan meningkatkan kualitas citra tersebut atau menghasilkan sebuah citra luaran sesuai dengan yang diinginkan.
Pengolahan citra pada dasarnya dilakukan dengan cara memodifikasi setiap titik dalam citra tersebut. Secara garis besar, modifikasi citra dikelompokkan menjadi:
1. Operasi temporal / berbasis bingkai adalah operasi pengkombinasian dua buah citra atau lebih dengan menggunakan operasi matematis. Operasi ini dilakukan titik per titik dengan lokasi yang bersesuaian pada citra-citra tersebut. Operasi temporal / berbasis bingkai diantaranya meliputi pengurangan derau, penggabungan citra (image blending), deteksi gerakan, dll.
2. Operasi titik adalah operasi pengolahan citra dimana setiap titik diolah tidak berpengaruh antara satu titik dengan titik yang lain. Setiap titik pada suatu citra mempunyai 2 karakteristik, yaitu koordinat yang menunjukkan lokasi dari titik tersebut dalam citra dan nilai piksel. Beberapa operasi pengolahan citra yang termasuk dalam kelompok operasi titik adalah operasi modifikasi kecemerlangan (brightness modification), peningkatan kontras
(contrast enhancement), negasi (negation), dan operasi pengambangan (thresholding).
3. Operasi geometri adalah operasi terhadap koordinat piksel dalam citra yang memungkinkan terjadinya perubahan bentuk, ukuran, atau orientasi. Operasi geometri di antaranya meliputi pencerminan (flipping), rotasi / pemutaran (rorating), penskalaan (scaling / zooming), dan pembengkokan (warping).
4. Operasi titik bertetangga adalah operasi dimana data dari titik yang bersebelahan (bertetangga) dengan titik yang ditinjau ikut berperan dalam mengubah nilai. Operasi bertetangga pada dasarnya konvolusi antara citra dengan sebuah filter atau mask. Operasi titik bertetangga di antaranya meliputi penghalusan citra (smoothing), eliminasi derau, pendeteksi tepi, penajaman citra (sharping).
5. Operasi morfologi adalah operasi yang didasarkan pada segmen atau region dalam citra yang menjadi perhatian. Operasi morfologi di antaranya meliputi operasi pencarian batas, dilasi (dilation), erosi (erosion), penutupan (closing), pembukaan (opening), pengisian (filling).
Operasi citra pada pengolahan citra pada umumnya diterapkan bila:
i. Perbaikan kualitas penampakan atau untuk menonjolkan beberapa aspek informasi yang terkandung dalam citra tersebut.
ii. Elemen-elemen dalam citra perlu dikelompokkan atau dicocokkan untuk diukur.
iii. Sebagian citra perlu digabung dengan citra yang lain. Contoh perbaikan kualitas citra :
Gambar 2.5 (a) Citra burung nuri yang gelap, (b) Citra burung yang telah diperbaiki kontrasnya sehingga tampak lebih jelas dan tajam
Sumber (Lussiana ETP
)
2.6Operasi berbasis bingkai
Operasi berbasis bingkai adalah operasi yang melibatkan lebih dari satu citra dan menghasilkan sebuah citra luaran yang merupakan hasil oprasi matematis (achmad, 2005).
Operasi berbasis bingkai antara citra A dan citra B akan menghasilkan citra C, yang persamaannya dapat dituliskan sebagai berikut:
dimana op adalah operator yang menghubungkan kedua citra tersebut. Operasi berbasis bingkai juga dapat melibatkan N buah citra A1 sampai dengan AN yang persamaannya dapat dituliskan sebagai berikut:
C(x,y) = A1(x,y) op A2(x,y) op A3(x,y) ... op AN(x,y)
Berdasarkan operator yang dipakai, operasi berbasis bingkai meliputi operasi aritmatik dan operasi logika.
Seperti pada penggabungan citra foto dan frame berikut :
(a) (b) (c) Gambar 2.6
Citra (a) adalah foto, citra (b) adalah frame, dan citra (c) adalah citra hasil penggabungan citra foto dan citra frame dengan menggunakan operasi
berbasis frame
2.7Operasi Logika
Operasi logika dapat digunakan pada dua atau lebih citra. Beberapa operasi logika yang sering digunakan adalah (Ahmad, 2005).:
2.7.1 Operasi Logika AND
Persamaan yang digunakan adalah: C(x,y) = A(x,y) AND B(x,y)
AND
(A) AND (B)
B
A
Gambar 2.7. Citra hasil operasi logika AND
Jika A adalah citra dengan gambar persegi panjang dan B adalah citra dengan gambar persegi maka setelah kedua citra tersebut dioperasikan dengan menggunakan operasi logika AND maka citra hasil operasi yang didapat adalah citra persegi panjang yang merupakan perpotongan kedua citra tersebut.
2.7.2 Operasi Logika OR
Persamaan yang digunakan adalah: C(x,y) = A(x,y) OR B(x,y)
B
OR
(A) OR (B)
A
Gambar 2.8. Citra hasil operasi logika OR
Jika A adalah citra dengan gambar persegi panjang dan B adalah citra dengan gambar persegi maka setelah kedua citra tersebut dioperasikan dengan menggunakan operasi logika OR maka citra hasil operasi yang didapat adalah citra poligon yang merupakan perpaduan kedua citra tersebut.
2.7.3 Operasi Logika XOR
Persamaan yang digunakan adalah: C(x,y) = A(x,y) XOR B(x,y)
B
A
XOR (A) XOR (B)
Gambar 2.9. Citra hasil operasi logika XOR
Jika A adalah citra dengan gambar persegi panjang dan B adalah citra dengan gambar persegi maka setelah kedua citra tersebut dioperasikan dengan menggunakan operasi logika XOR maka citra hasil operasi yang didapat adalah citra poligon yang berlubang dibagian tengah yang merupakan hasil perpaduan kedua citra tersebut.
2.7.4Operasi Logika NOT
Persamaan yang digunakan adalah: C(x,y) = NOT A(x,y)
A
NOT
NOT (A)
Gambar 2.10. Citra hasil operasi logika NOT
Jika A adalah citra dengan gambar persegi panjang maka setelah citra tersebut dioperasikan dengan menggunakan operasi logika NOT maka citra hasil operasi yang didapat adalah sebuah citra yang berlubang di bagian persegi panjang. Hasil yang terbentuk merupakan komplemen dari citra awal.
2.8Format Citra .BMP
Sistem Operasi Windows mempunyai standar untuk format berkas citra yaitu *.BMP (bitmap) yang dapat dipanggil langsung untuk dimanipulasi dan ditampilkan karena sistem operasi Windows memiliki perintah API (Aplication Programming Interface).
Citra bitmap ini dipetakan ke dalam sejumlah bit tertentu dengan nilai intensitas piksel. Jumlah bit yang dipetakan ini mempresentasikan derajat keabuan (graylevel) yang akan mempengaruhi kedalaman warna dari citra bitmap.
Setiap berkas bitmap terdiri atas header berkas (BitmapFileHeader), header bitmap (bitmapinfoheader), informasi palet, dan data bitmap. (Sutoyo,2009)
Header berkas Header bitmap Informasi palet Data bitmap
14 byte 12 s/d 64 byte 0 s/d 1024 bytes N byte
Gambar 2.11 Format berkas bitmap
Header berkas akan menentukan tipe, ukuran dan layout dari file bitmap. Stuktur header file dijelaskan pada tabel 2.1.
Tabel 2.1. Tabel isi header berkas bitmap
Byte ke- Panjang (byte) Nama Keterangan
1 – 2 2 BmpType TipeberkasBitmap: BA = bitmap array, CI = icon,
BM = bitmap, CP = color pointer, PT = pointer
3 – 6 4 BmpSize Ukuran berkas bitmap 7 – 8 2 XhotSpot X hotspot untuk kursor 9 – 10 2 YhotSpot Y hotspot untuk kursor
11 – 14 4 OffBits Ofset keawal data bitmap (dalam byte) Header bitmap akan menentukan dimensi, tipe pemampatan dan format warna untuk bitmap. Stuktur header bitmap dijelaskan pada tabel 2.2.
Tabel 2.2. Tabel isi header bitmap
Byte ke- Panjang (byte) Nama Keterangan
1 – 4 4 HdrSize Ukuran header dalam satuan byte 5 – 8 4 Width Lebar bitmap dalam satuan piksel 9 – 12 4 Height Tinggi bitmap dalam satuan piksel 13 – 14 2 Planes Jumlah plane (umumnya selalu satu) 15 – 16 2 BitCount Jumlah bit per piksel
17 – 20 4 Compression 0 = takdimampatkan, 1 = dimampatkan 21 – 24 4 ImgSize Ukuranbitmapdalambyte 25 – 28 4 HorzRes Resolusi horizontal 29 – 32 4 VertRes Resolusivertikal
33 – 36 4 ClsrUsed Jumlahwarna yang digunakan 37 – 40 4 ClrImportant Jumlahwarna yang penting
Informasi palet warna berisi struktur RGBQuad yang berisi elemen warna yang ada pada bitmap. Setiap entry pada tabel terdiri atas tiga buah field, yaitu R
(red), G (green), dan B (blue). Struktur informasi palet warna dijelaskan pada tabel 2.3.
Tabel 2.3. Tabel isi data gambar
Ofset Nama Keterangan
0 RgbBlue Nilai warna biru 1 RgbGreen Nilai warna hijau 2 RgbRed Nilai warna merah 3 RgbReserved Selalu 0
Data bitmap diletakkan sesudah informasi palet.Penyimpanan data bitmap di dalam berkas disusun terbalik dari bawah keatas dalam bentuk matrik yang berukuran height × width. Baris ke-0 pada matrik data bitmap menyatakan data piksel di citra baris terbawah, sedangkan baris terakhir pada matrik menyatakan data piksel di citra baris teratas. Stuktur informasi data bitmap dijelaskan pada Gambar 2.12.
< header bit m ap> < dat a bit m ap>
220 56 256 255 255 255 10 120 120 0 0 25 152 25 47 25 215 255
Gambar 2.12. Format citra BMP 24-bit
2.9Format Citra .JPG
Format .JPG adalah format yang mampu mengkompres objek dengan kualitas sesuai dengan pilihan yang disediakan. Format file ini
sering digunakan untuk menyimpan gambar yang akan digunakan untuk keperluan halaman web. Format JPG ini memiliki ukuran yang lebih kecil jika dibandingkan dengan format lainya, hal ini terjadi karena format JPG bertujuan untuk publikasi.
2.10 Kuesioner
Kuesioner merupakan alat pengumpulan informasi dengan menyampaikan sejumlah pertanyaan tertulis, untuk dijawab secara tertulis pula oleh responden (Gilbert, 2005)
2.10.1 Kuesioner Terstruktur Yang Terbuka
Tingkat struktur dalam kuesioner adalah tingkat standarisasi yang diterapkan pada suatu kuesioner. Pada kuesioner terstruktur yang terbuka dimana pertanyaanpertanyaan diajukan dengan susunan kata-kata dan urutan yang sama kepada semua responden ketika mengumpulkan data. Contoh:
Apakah anda merasa bahwa negara kita membutuhkan lebih banyak atau lebih sedikit peraturan perundang-undangan mengenai antipolusi?
o Membutuhkan lebih banyak o Membutuhkan lebih sedikit o Tidak lebih maupun kurang o Tidak memberikan pendapat
Pertanyaan diatas merupakan contoh yang baik tentang pertanyaan terstruktur yang terbuka, karena: pertama, tujuannya jelas, pertanyaan diatas berusaha untuk menentukan sikap subjek terhadap peraturan perundang-undangan antipolusi dengan cara yang langsung. Kedua, pertanyaan diatas menggunakan format yang sangat terstruktur, para responden dibatasi untuk memilih salah satu diantara empat jawaban.
2.11 Kompleksitas Waktu
Kompleksitas waktu diperlukan dalam menganalisis algoritma, hal ini dilakukan agar sebuah algoritma tidak hanya diukur dari kemampuan melakukan proses tetapi juga diketahui tingkat efektifitasnya. Dalam hal ini algoritma diukur dari jumlah waktu dan ruang (space) memori yang dibutuhkan untuk menjalankannya.
Algoritma dikatakan efisien jika suatu algoritma mampu meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses. Dalam praktik, dapat diukur waktu yang diperlukan oleh sebuah algoritma dengan menghitung banyaknya operasi/instruksi yang dieksekusi. Jika mengetahui besaran waktu (dalam satuan detik) untuk melaksanakan sebuah operasi tertentu, maka dapat dihitung berapa waktu sesungguhnya untuk melaksanakan algoritma tersebut.
Dalam melakukan perhitungan perlu diperhatikan model abstrak pengukuran waktu/ruang yang harus independen dari pertimbangan mesin dan compiler apapun. Besaran yang dipakai untuk menerangkan model abstrak pengukuran waktu/ruang ini adalah kompleksitas algoritma. Ada dua macam kompleksitas algoritma, yaitu: kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n. Kompleksitas ruang S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan n.
Dalam praktek, kompleksitas waktu dihitung berdasarkan jumlah operasi abstrak yang mendasari suatu algoritma, dan memisahkan analisis dari implementasi.
2.11.1.1Kompleksitas Waktu Asimptotik
Kompleksitas waktu detail dari sebuah algoritma, terkadang tidak terlalu diperlukan yang diperlukan adalah besaran dari kompleksitas waktu yang mendekati besarnya kompleksitas waktu yang sebenarnya. Kompleksitas waktu yang demikian disebut dengan kompleksitas waktu asimtotik yang dinotasikan dengan notasi “O” disebut notasi “O-Besar” (Big-O).
Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik adalah sebagai berikut:
1. Jika kompleksitas waktu T(n) dari algoritma diketahui, Contoh: (i) pada algoritma cari_maksimum
T(n) = n – 1 = O(n)
(ii) pada algoritma pencarian_beruntun
Tmin(n) = 1 = O(1) Tmax(n) = n = O(n)
Tavg(n) = (n + 1)/2 = O(n),
(iii) pada algoritma pencarian_biner, Tmin(n) = 1 = O(1)
Tmax(n) = 2log n = O(2log n)
(iv) pada algoritma selection_sort
……….. (2.1) ……….. (2.2) ……….. (2.3) ( ) 2 ) 1 ( ) (n n n O n2 T = − = (v) T(n) = (n + 2) log(n2 + 1) + 5n2 = O(n2)
Penjelasannya adalah sebagai berikut:
T(n) = (n + 2) log(n2 + 1) + 5n2 = f(n)g(n) + h(n),
Kita rinci satu per satu:
⇒f(n) = (n + 2) = O(n)
⇒g(n) = log(n2 + 1) = O(log n), karena log(n2 + 1) ≤ log(2n2) = log 2 + log n2 = log 2 + 2 log n≤ 3 log n untuk n > 2
⇒h(n) = 5n2 = O(n2) maka
T(n) = (n + 2) log(n2 + 1) + 5n2 = O(n)O(log n) + O(n2)
=O(n log n)+O(n2)=O(max(n log n, n2)) = O(n2)
…….. (2.5)
2. Menghitung O-Besar untuk setiap instruksi di dalam algoritma dengan panduan di bawah ini, kemudian menerapkan teorema O -Besar.
(a) Pengisian nilai (assignment), perbandingan, operasi aritmetik, read, write membutuhkan waktu O(1).
(b) Pengaksesan elemen larik atau memilih field tertentu dari sebuah record membutuhkan waktu O(1).
Contoh:
read(x); O(1)
x:=x + a[k]; O(1) + O(1) + O(1) = O(1) writeln(x); O(1)
Kompleksitas waktu asimptotik = O(1) + O(1) + O(1) = O(1)
Penjelasan: O(1) + O(1) + O(1) = O(max(1,1)) + O(1) ……….. (2.6) = O(1) + O(1) = O(max(1,1)) = O(1)
(c) if C then S1 else S2; membutuhkan waktu TC + max(TS1,TS2) Contoh: read(x); O(1) if x mod 2 = 0 then O(1) begin x:=x+1; O(1) writeln(x); O(1) end else writeln(x); O(1)
Kompleksitas waktu asimptotik:
= O(1) + O(1) + max(O(1)+O(1), O(1))
= O(1) + max(O(1),O(1)) ……….. (2.7) = O(1) + O(1)
= O(1)
(d) Kalang for. Kompleksitas waktu kalang for adalah jumlah pengulangan dikali dengan kompleksitas waktu badan (body) kalang.
for i:=1 to n do
jumlah:=jumlah + a[i]; O(1)
Kompleksitas waktu asimptotik = n . O(1)
……….. (2.8) = O(n .1)
= O(n)
Contoh: kalang bersarang
for i:=1 to n do for j:=1 to n do
a[I,j]:=0; O(1)
Kompleksitas waktu asimptotik:
……….. (2.9) nO(n) = O(n.n) = O(n2)
(e) While C do S; dan repeat S until C; Untuk kedua buah kalang, kompleksitas waktunya adalah jumlah pengulangan dikali dengan kompleksitas waktu badan C dan S.
Contoh: kalang tunggal sebanyak n-1 putaran
i:=2; O(1) while I <= n do O(1) begin jumlah:=jumlah + a[i]; O(1) i:=i+1; O(1) end;
= O(1) + (n-1) { O(1) + O(1) + O(1) } = O(1) + (n-1) O(1) = O(1) + O(n-1) ……….. (2.10) = O(1) + O(n) = O(n)
Pengelompokan Algoritma Berdasarkan Notasi O-Besar
Tabel 2.4: Pengelompokan Algoritma Berdasarkan Notasi O-Besar Kelompok Algoritma Nama
O(1) O(log n) O(n) O(n log n) O(n2) O(n3) O(2n) O(n!) konstan logaritmik lanjar n log n kuadratik kubik eksponensial faktorial
BAB III
ANALISIS DAN PERANCANGAN SISTEM
Analisa dan perancangan sistem digunakan untuk menggambarkan sistem yang akan dibangun, dalam hal ini adalah proses-proses yang dibutuhkan dalam penelitian, perangkat lunak yang dibutuhkan dalam pengerjaan program, informasi perangkat keras yang digunakan untuk melakukan penelitian, serta rancangan interface yang akan di bangun dalam sistem.
3.1 Rancangan Umum
Secara umum, program tugas akhir ini menitik beratkan pada pemrosesan citra digital. Meskipun tujuan akhirnya adalah melakukan pembuatan aplikasi salon potong rambut untuk melakukan simulasi pemilihan model rambut. Aplikasi salon kecantikan ini bertujuan untuk melakukan simulasi pemilihan model rambut dengan menggunakan citra wajah pelanggan. Aplikasi salon ini menggunakan konsep-konsep serta algoritma pemrosesan citra digital.
Dalam aplikasi salon ini citra yang digunakan adalah citra wajah pelanggan dan citra model rambut. Citra wajah pelanggan diambil menggunakan kamera digital sedangkan citra model rambut sudah disiapkan terlebih dahulu. Citra wajah yang diambil dengan menggunakan kamera digital akan diolah terlebih dahulu untuk mendapatkan citra wajah yang bisa digunakan untuk proses selanjutnya. Setelah didapat hasil citra wajah yang dibutuhkan selanjutnya dilakukan proses penggabungan citra
wajah dan citra model rambut sehingga dapat dilakukan simulasi pemilihan model rambut oleh pelanggan.
Aktivitas yang dilakukan oleh sistem ditunjukan pada Gambar 3.1
Citra hasil penggabungan
operasi logika and
Citra wajah Citra model rambut
dan frame
Citra hasil penggabungan
Operasi berbasis frame
Sistem penggabungan
citra menggunakan
operasi berbasis frame,
dan Oeprasi logika and
User
Gambar 3.1 Diagram konteks
3.2 Analisa kebutuhan Proses
Dari Uraian mengenai gambaran umum sistem pada Gambar 3.1 terdapat beberapa proses yang harus dilakukan oleh sistem yaitu proses penggabungan citra dengan menggunakan operasi logika and dan proses penggabungan citra dengan menggunakan operasi berbasis frame. Pada penggabungan citra menggunakan operasi logika and citra masukan dirubah menjadi biner terlebih dahulu. Hal ini dilakukan karena operasi logika and hanya dapat dilakukan pada citra biner.
Dari penjelasan proses pada Gambar 3.1 maka di dapat Data Flow Diagram (DFD) level 1yang ditunjukkan pada Gambar 3.2
Citra wajah Citra model rambut Gambar 3.2 DFD level 1 3.2.1 Proses binerisasi
Proses binerisasi adalah proses yang harus dilakukan. Hal ini dikarenakan untuk melakukan proses penggabungan citra dengan menggunakan operasi logika and citra masukan yang diperlukan adalah citra biner (bernilai 0 dan 1 dalam piksel gambar). Proses binerisasi yang dirancang dapat dilihat pada Gambar 3.3
Citra model rambut biner
Citra wajah biner
1 Binerisasi 2.penggabungan menggunakan operasi logika and 3.penggabungan menggunakan operasi berbasis frame User Citra hasil nggab ngan nggu kan operasi erbasis Citra model rambut pe u me na b frame Citra frame Citra waja Citra hasil pengga bungan mengg unakan operasi h logika
Mulai
Citra asli
Image_biner = im2bw(originalimage)
Selesai
Gambar 3.3 Proses binerisasi
Keterangan
• Proses binerisasi dilakukan pada citra asli menggunakan perintah yang sudah ada di dalam matlab yaitu im2bw yang digunakan untuk melakukan proses binerisasi atau merubah piksel citra asli menjadi 0 dan 1. Sebelum proses binerisasi proses graythresh dilakukan lebih dahulu. Graythresh adalah perintah yang sudah ada didalam matlab, yang dapat digunakan untuk menentukan nilai ambang piksel citra untuk dirubah menjadi 0 dan 1.
3.2.2 Proses penggabungan menggunakan operasi logika and
Proses penggabungan citra menggunakan operasi logika and merupakan proses utama yang dilakukan. Dalam hal ini penggabungan
citra wajah dan citra model rambut dilakukan dengan menggunakan operasi logika and. Proses ini dimulai dengan melakukan operasi logika and pada setiap piksel citra wajah dan model rambut. Sehingga didapat sebuah citra luaran berupa citra hasil penggabungan citra wajah dan citra model rambut.
Proses ini dapat dilihat pada Gambar 3.4. proses penggabungan citra wajah dan model rambut menggunakan operasi logika and.
A = gambar wajah B = gambar rambut C = im2bw (a) D = im2bw (b) E = c & d Selesai Mulai
Gambar 3.4. Proses penggabungan citra wajah dan model rambut menggunakan operasi logika and.
Keterangan :
• Pada proses ini yang pertama dilakukan adalah merubah kedua buah citra masukan (citra wajah dan citra model rambut) dari format citra warna atau RGB menjadi citra biner.
• Setelah kedua buah citra masukan menjadi biner maka dilakukan operasi logika and, sehingga hasil dari operasi logika tersebut adalah citra hasil penggabungan antara citra wajah dan citra model rambut dalam format citra biner.
3.2.3 Proses penggabungan menggunakan operasi berbasis frame
Proses penggabungan citra menggunakan operasi berbasis frame merupakan proses utama yang dilakukan. Dimana dalam proses penggabungan ini dilakukan berdasarkan citra frame yang digunakan, dengan cara melakukan perubahan pada piksel citra frame, dimana apabila piksel pada citra frame bernilai 0 atau hitam maka piksel tersebut akan diganti dengan piksel citra wajah. Sedangkan apabila pada piksel citra frame bernilai 1 atau putih maka pada piksel frame tersebut akan diganti dengan nilai piksel dari citra model rambut. Sehigga didapat hasil penggabungan citra wajah dan model dalam format citra warna.
Imread(gambar_wajah) Imread(frame) Imread(rambut) i<tinggi? j<lebar? Frame==255 Hasil=rambut Hasil=wajah selesai benar benar benar Sala Salah i++ j++ i = 1; j=1
(tinggi, lebar = Ukuran Citra wajah)
Sala
Mulai
Gambar 3.5 Algoritma penggabungan citra wajah dan rambut menggunakan operasi berbasis frame
Keterangan :