TA : Rancang Bangun Pendeteksi Tempat Parkir Kosong Berbasis Citra Digital.

(1)

RANCANG BANGUN PENDETEKSI TEMPAT

PARKIR KOSONG BERBASIS CITRA DIGITAL

TUGAS AKHIR

Nama : Achmad Yusuf Zunaidi

NIM : 08.41020.0084

Program : S1 (Strata Satu)

Jurusan : Sistem Komputer

SEKOLAH TINGGI

MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA


(2)

xvi

Luas lahan parkir dan banyaknya mobil di tempat parkir dapat menjadi

kendala bagi orang yang hendak parkir untuk mengetahui tempat parkir di bagian

mana yang masih kosong, sehingga mengharuskan orang untuk mengelilingi lahan

parkir untuk mencari tempat yang kosong.

Pada saat ini tempat parkir dilengkapi dengan kamera CCTV yang berguna

hanya untuk memantau keadaan parkir. Citra yang dihasilkan CCTV sebenarnya

dapat dimanfaatkan dengan mengolahnya untuk dapat mendeteksi tempat parkir

yang kosong dan hasilnya diinformasikan ke orang yang hendak parkir.

Pada Tugas Akhir ini akan dirancang sebuah sistem yang dapat mendeteksi

serta menginformasikan tempat parkir kosong menggunakan sistem yang terdiri

dari 3 bagian utama yaitu kamera, komputer, dan display.

Dengan adanya sistem pendeteksi tempat parkir yang kosong tersebut maka

orang yang hendak parkir ( mobil ) tidak perlu lagi berkeliling lahan parkir untuk

mendapatkan tempat parkir melainkan dapat langsung menuju ke salah satu

tempat parkir yang kosong sesuai pada list tempat parkir kosong pada display.

Pada sistem ini menggunakan metode Background Subtraction dan

menghasilkan 150 data yang benar dari 150 kali percobaan dengan batas minimal

presentase pixel putih sebesar 35% yang didapatkan dari beberapa pengujian

(pengujian untuk mendapatkan hasil yang akurat).


(3)

viii

DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN MOTTO ... iii

HALAMAN PERSEMBAHAN ... iv

HALAMAN PENGESAHAN ... v

HALAMAN PERNYATAAN ... vi

KATA PENGANTAR ... vii

DAFTAR ISI ... viii

DAFTAR TABEL ... xiii

DAFTAR GAMBAR ... xiv

ABSTRAK ... xvi

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang Masalah ... 1

1.2. Perumusan Masalah ... 2

1.3. Pembatasan Masalah ... 2

1.4. Tujuan ... 2

1.5. Kontribusi ... 3

1.6. Sistematika Penulisan ... 3

BAB II LANDASAN TEORI ... 5

2.1. Webcam ... 5

2.2. Citra Digital ... 6

2.3. Pengolahan Citra Digital ... 7


(4)

2.3.2. Thresholding ... 11

2.3.3. Background Subtraction... 12

2.4. Color Space ... 13

2.4.1. RGB ... 13

2.5. Computer Vision ... 15

2.6. OpenCV ... 16

BAB III METODE PENELITIAN ... 18

3.1. Perancangan Sistem dan Blok Diagram Sistem ... 18

3.2. Perancangan perangkat keras ... 20

3.3. Perancangan perangkat lunak ... 22

3.4. Pengambilan Citra Sampel ... 24

3.5. Penerimaan Data Citra ... 25

3.6. Streaming Citra ... 25

3.7. Proses Update Citra Kondisi Parkir ... 26

3.8. Pengolahan Citra... 27

3.8.1. Menentukan Koordinat Area ... 29

3.8.2. Akses Pixel ... 29

3.8.3. Background Subtraction ... 31

3.8.4. Grayscaling ... 35

3.8.5. Thresholding ... 36

3.9. Penghitungan Pixel Putih (Counting White Pixel) ... 37

3.10. Identifikasi Benda ... 40


(5)

x

BAB IV PENGUJIAN DAN EVALUASI SISTEM ... 43

4.1. Pengujian Streaming Citra Melalui Webcam ... 46

4.1.1. Tujuan ... 46

4.1.2. Alat yang Digunakan ... 47

4.1.3. Prosedur Pengujian ... 47

4.1.4. Hasil Pengujian ... 47

4.2. Pengujian Update Citra Kondisi Parkir ... 48

4.2.1. Tujuan ... 48

4.2.2. Alat yang digunakan ... 48

4.2.3. Prosedur Pengujian ... 48

4.2.4. Hasil Pengujian ... 49

4.3. Pengujian Penentuan Koordinat Pada Tiap Area ... 50

4.3.1. Tujuan ... 50

4.3.2. Alat yang Digunakan ... 51

4.3.3. Prosedur Pengujian ... 51

4.3.4. Hasil Pengujian ... 51

4.4. Pengujian Akses Pixel ... 52

4.4.1. Tujuan ... 53

4.4.2. Alat yang Digunakan ... 53

4.4.3. Prosedur Pengujian ... 53

4.4.4. Hasil Pengujian ... 54

4.5. Pengujian Background Subtraction ... 55

4.5.1. Tujuan ... 55


(6)

4.5.3. Prosedur Pengujian ... 56

4.5.4. Hasil Pengujian ... 56

4.6. Pengujian Thresholding ... 59

4.6.1. Tujuan ... 59

4.6.2. Alat yang Digunakan... 59

4.6.3. Prosedur Pengujian ... 59

4.6.4. Hasil Pengujian ... 60

4.7. Pengujian Penghitungan Pixel... 61

4.7.1. Tujuan ... 61

4.7.2. Alat yang Digunakan... 61

4.7.3. Prosedur Pengujian ... 62

4.7.4. Hasil Pengujian ... 62

4.8. Pengujian Identifikasi Benda ... 63

4.8.1. Tujuan ... 63

4.8.2. Alat yang Digunakan... 64

4.8.3. Prosedur Pengujian ... 64

4.8.4. Hasil Pengujian ... 64

4.9. Evaluasi Sistem Secara Keseluruhan ... 70

4.9.1. Tujuan ... 71

4.9.2. Alat yang Digunakan... 71

4.9.3. Prosedur Pengujian ... 71


(7)

xii

BAB V PENUTUP ... 82

5.1. Kesimpulan ... 82

5.2. Saran ... 83

DAFTAR PUSTAKA ... 84

LAMPIRAN ... 86


(8)

1 BAB I PENDAHULUAN

1.1. Latar Belakang Masalah

Tempat parkir merupakan salah satu sarana penting pada suatu pusat

perbelanjaan, perkantoran, dan lain-lain. Luasnya lahan parkir dan banyaknya

mobil di tempat parkir tersebut dapat menjadi kendala bagi pengendara mobil

untuk mengetahui lahan parkir di bagian mana yang masih kosong, sehingga

mengharuskan para pengendara mengelilingi lahan parkir untuk mencari tempat

yang kosong.

Pada saat ini tempat parkir dilengkapi dengan kamera CCTV yang berguna

hanya untuk memantau keadaan parkir tersebut. Dari citra yang dihasilkan oleh

CCTV dapat diproses lebih lanjut menjadi sistem yang dapat mendeteksi serta

menginformasikan tempat parkir yang kosong kepada para pengendara dengan

metode pengolahan citra.

Pada Tugas Akhir ini akan dirancang sebuah sistem yang dapat mendeteksi

serta menginformasikan tempat parkir kosong menggunakan sistem yang terdiri

dari 3 bagian utama yaitu kamera, komputer, dan display. Kamera diletakkan pada

posisi dan sudut tertentu untuk proses pengambilan gambar situasi blok parkir.

Komputer digunakan untuk mengolah citra yang diterima dari kamera menjadi

informasi tempat kosong. Hasil proses pendeteksian akan

ditampilkan/diinformasikan kepada pengendara melalui display dalam bentuk


(9)

2

1.2. Perumusan Masalah

Dari latar belakang yang telah diuraikan, dapat dirumuskan permasalahan

sebagai berikut:

1. Bagaimana membuat sistem untuk mendeteksi lokasi parkir yang kosong dari

citra lokasi parkir yang diambil menggunakan kamera.

2. Bagaimana mengaplikasikan metode Background Subtraction untuk

menentukan lokasi parkir yang kosong.

1.3. Pembatasan Masalah

Dalam perancangan dan pembuatan perangkat terdapat beberapa

pembatasan masalah sebagai berikut:

1. Uji coba sistem ini dilakukan pada miniatur.

2. Kamera yang digunakan adalah webcam.

3. Miniatur didesain seperti salah satu lantai tempat parkir mobil di Tunjungan

Plaza Surabaya.

4. Lokasi parkir yang dideteksi mencakup untuk 3 mobil tiap gambar.

5. Informasi lahan parkir akan diperbarui secara berkala.

1.4. Tujuan

Tujuan dari perancangan dan pembuatan sistem ini adalah sebagai berikut:

1. Membuat sistem yang mampu mendeteksi lokasi parkir yang kosong dari citra

lokasi parkir menggunakan kamera.

2. Mengaplikasikan metode Background Subtraction untuk mengetahui suatu


(10)

1.5. Kontribusi

Kontribusi tugas akhir ini adalah apabila sistem ini diterapkan maka dapat

mempermudah orang yang hendak parkir dalam mencari tempat parkir mobil yang

kosong.

1.6. Sistematika Penulisan

Sistematika penulisan buku tugas akhir ini terdiri dari lima bab, yang secara

ringkas dapat diuraikan sebagai berikut :

BAB I : Pendahuluan

Pada BAB I dijelaskan tentang latar belakang masalah, perumusan

masalah, pembatasan masalah, tujuan, kontribusi dan sistematika

penulisan buku tugas akhir.

BAB II : Landasan Teori

Pada BAB II menjelaskan tentang kamera, citra digital, pengolahan

citra yang meliputi grayscaling, thresholding, metode background

subtraction (subtraksi background), color space yang meliputi RGB, computer vision dan opencv.

BAB III : Metode Penelitian

Pada BAB III dibahas tentang perangkat-perangkat yang digunakan

dalam membuat tugas akhir ini, baik perangkat keras (hardware)

yang berupa miniatur maupun perangkat lunak (software)

diantaranya flowchart sistem secara keseluruhan, proses streaming,

proses update citra kondisi parkir, proses subtraksi, proses


(11)

4

penghitungan pixel warna putih dan proses menentukan koordinat

area yang menjadi titik acuan.

BAB IV : Pengujian dan Evaluasi Sistem

Pada BAB IV membahas tentang pengujian sistem meliputi,

pengujian pengambilan gambar secara otomatis setiap lima menit

sekali, proses subtraksi, proses grayscale, proses thresholding,

proses menentukan koordinat tertentu, proses mengenali benda dari

citra biner.

BAB V : Penutup

Pada BAB V merupakan bagian akhir dari laporan penelitian tugas

akhir ini yang menguraikan kesimpulan-kesimpulan yang diperoleh

dari proses penelitian serta saran-saran untuk pengembangan


(12)

5

BAB II

LANDASAN TEORI

2.1. Webcam

Web camera atau yang biasa dikenal dengan webcam, adalah kamera yang

gambarnya bisa di akses menggunakan world wide web (www), program instant

messaging, atau aplikasi komunikasi dengan tampilan video pada PC. Webcam

juga digambarkan sebagai kamera video digital yang sengaja didesain sebagai

kamera dengan resolusi rendah. webcam dapat digunakan untuk sistem keamanan.

Pada beberapa webcam, ada yang di lengkapi dengan software yang mampu

mendeteksi pergerakan dan suara. Dengan software tersebut, memungkinkan PC

yang terhubung ke kamera untuk mengamati pergerakan dan suara, serta

merekamnya ketika terdeteksi. Hasil rekaman ini bisa disimpan pada komputer,

e-mail atau di upload ke internet (Wibowo, 2010).

Webcam sangat bermanfaat dalam bidang telekomunikasi, bidang keamanan

dan bidang industri. Sebagai contoh webcam digunakan untuk videocall chatting,

surveillience camera, dan sebagai video conference oleh beberapa user.


(13)

6

2.2. Citra Digital

Citra digital adalah citra dua dimensi yang dapat ditampilkan pada layar

monitor komputer sebagai himpunan berhingga (diskrit) nilai digital yang disebut

pixel (picture elements). Pixel adalah elemen citra yang memiliki nilai yang

menunjukkan intensitas warna. Berdasarkan cara penyimpanan atau

pembentukannya, citra digital dapatdibagi menjadi dua jenis. Jenis pertama adalah

citra digital yang dibentuk olehkumpulan pixel dalam array dua dimensi.Citra

jenis ini disebut citra bitmap atau citra raster.Jenis citra yang kedua adalah

citrayang dibentuk oleh fungsi-fungsi geometri dan matematika.Jenis citra ini

disebutgrafik vektor.Citra digital (diskrit) dihasilkan dari citra analog (kontinu)

melalui digitalisasi.Digitalisasi citra analog terdiri sampling danquantitazion

Sampling adalah pembagian citra ke dalam elemen-elemen diskrit (pixel),

sedangkan quantitazion adalah pemberian nilai intensitaswarna pada setiap pixel

dengan nilai yang berupa bilangan bulat (G.W. Awcock,1996).

Citra digital dapat didefinisikan sebagai fungsi dua variabel, f(x,y), dimana x

dan y adalah koordinat spasial dan nilai f(x,y) adalah brightness level dari citra


(14)

Gambar 2.2 Citra Digital (Nixon dan Aguado, 2002)

Teknologi dasar untuk menciptakan dan menampilkan warna pada citra

digital berdasarkan pada penelitian bahwa sebuah warna merupakan kombinasi

dari tiga warna dasar, yaitu merah, hijau dan biru (Red, Green, Blue - RGB).

2.3. Pengolahan Citra Digital

Pengolahan citra merupakan teknik manipulasi citra secara digital yang

khususnya menggunakan komputer, menjadi citra lain yang sesuai untuk

digunakan dalam aplikasi tertentu. Agar mudah diinterpretasi oleh manusia atau

komputer, pengolahan citra harus dilakukan dengan berbagai macam metode

untuk mencapai citra sesuai yang diinginkan.

Operasi pengolahan citra digital umumnya dilakukan dengan tujuan

memperbaiki kualitas suatu gambar sehingga dapat dengan mudah

diinterpretasikan oleh mata manusia dan untuk mengolah informasi yang ada pada

suatu gambar untuk kebutuhan identifikasi objek secara otomatis.

y

x

x1

y1


(15)

8

Operasi-operasi yang dilakukan di dalam pengolahan citra banyak jenisnya.

Secara umum, operasi pengolahan citra dapat diklasifikasikan dalam beberapa

jenis sebagai berikut:

1. Image enhancement.

Jenis operasi ini bertujuan untuk memperbaiki kualitas citra dengan cara

memanipulasi parameter-parameter citra.

Dengan operasi ini, ciri-ciri khusus yang terdapat di dalam citra lebih

ditonjolkan.Contoh-contoh operasi perbaikan citra:

a. perbaikan kontras gelap/terang

b. perbaikan tepian objek (edge enhancement)

c. penajaman (sharpening)

d. grayscaling

e. noise filtering

2. Image restoration.

Operasi ini bertujuan menghilangkan/ meminimumkan cacat pada citra.

Tujuan pemugaran citra hampir sama dengan operasi perbaikan citra. Bedanya,

pada pemugaran citra penyebab degradasi gambar diketahui. Contoh-contoh

operasi pemugaran citra:

a. penghilangan kesamaran (deblurring)

b. penghilangan noise

3. Image compression.

Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentuk

yang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal penting


(16)

harus tetap mempunyai kualitas gambar yang bagus. Contoh metode pemampatan

citra adalah metode JPEG.

4. Image segmentation.

Jenis operasi ini bertujuan untuk memecah suatu citra ke dalam beberapa

segmen dengan suatu kriteria tertentu. Jenis operasi ini berkaitan erat dengan

pengenalan pola.

5. Image analysis.

Jenis operasi ini bertujuan menghitung besaran kuantitif dari citra untuk

menghasilkan deskripsinya. Teknik pengorakan citra mengekstraksi ciri- ciri

tertentu yang membantu dalam identifikasi objek. Proses segmentasi kadangkala

diperlukan untuk melokalisasi objek yang diinginkan dari sekelilingnya.

Contoh-contoh operasi pengorakan citra:

a. Pendeteksian tepi objek (edge detection)

b. Ekstraksi batas (boundary)

c. Representasi daerah (region)

6. Image reconstruction

Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa citra

hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam bidang medis.

Misalnya beberapa foto rontgen dengan sinar X digunakan untuk membentuk

ulang gambar organ tubuh. (Nixon dan Aguado, 2002)

2.3.1. Gray-Scaling

Proses awal yang banyak dilakukan dalam image processing adalah


(17)

10

menyederhanakan model citra. Seperti telah dijelaskan di depan, citra berwarna

terdiri dari 3 layer matrik yaitu R- layer, G-layer dan B-layer. Sehingga untuk

melakukan proses-proses selanjutnya tetap diperhatikan tiga layer di atas. Bila

setiap proses perhitungan dilakukan menggunakan tiga layer, berarti dilakukan

tiga perhitungan yang sama. Sehingga konsep itu diubah dengan mengubah 3

layer di atas menjadi 1 layer matrik scale dan hasilnya adalah citra

gray-scale. Dalam citra ini tidak ada lagi warna, yang ada adalah derajat keabuan.

Untuk mengubah citra berwarna yang mempunyai nilai matrik

masing-masing r, g dan b menjadi citra gray-scale dengan nilai s, maka konversi dapat

dilakukan dengan mengambil rata-rata dari nilai r, g dan b sehingga dapat

dituliskan menjadi:

I (x,y) = � , +�( , )+�( , )

3 ……….….(2.1)

Keterangan:

I (x,y) = nilai intensitas citra grayscale

R (x,y) = nilai intensitas warna merah dari citra asal

G (x,y) = nilai intensitas warna hijau dari citra asal

B (x,y) = nilai intensitas warna biru dari citra asal

Atau dapat menggunakan persamaan:

I = ( 0,299 x R(x,y)) + ( 0,587 x G(x,y)) + (0,144 x B(x,y)) ……… (2.2) (Taylor dan Francis Group, 2007)


(18)

Berikut adalah contoh gambar hasil grayscaling

Gambar 2.3 Hasil Grayscaling( Nata S, 2010 )

2.3.2. Thresholding

Thresholding merupakan konversi citra berwarna ke citra biner yang

dilakukan dengan cara mengelompokkan nilai derajat keabuan setiap pixel

kedalam 2 kelas, hitam dan putih. Pada citra hitam putih terdapat 256 level,

artinya mempunyai skala “0” sampai “255” atau [0,255], dalam hal ini nilai

intensitas 0 menyatakan hitam, dan nilai intensitas 255 menyatakan putih, dan

nilai antara 0 sampai 255 menyatakan warna keabuan yang terletak antara hitam

dan putih (Munir, 2004).

Pada operasi pengambangan, nilai intensitas pixel dipetakan ke salah satu

dari dua nilai, α atau α , berdasarkan nilai ambang (threshold) T dapat ditunjukkan seperti pada persamaan 2.1.

� , ′ = α , f x, y <�

α , f x, y ≥T……….………....(2.3)

Jika α = 0 dan α = 1, maka operasi pengambangan mentransformasikan citra hitam-putih ke citra biner. Dengan kata lain, nilai intensitas pixel semula


(19)

12

berlaku untuk keseluruhan pixel atau untuk wilayah tertentu saja (berdasarkan

penyebaran nilai intensitas pada wilayah tersebut) (Munir, 2004).

Thresholding merupakan salah satu teknik segmentasi yang baik digunakan

untuk citra dengan perbedaan nilai intensitas yang signifikan antara latar belakang

dan objek utama.Dalam pelaksanaannya thresholding membutuhkan suatu nilai

yang digunakan sebagai nilai pembatas antara objek utama dengan latar belakang,

dan nilai tersebut dinamakan dengan threshold. Sementara pada kasus segmentasi

objek yang membutuh dua nilai T atau lebih, maka disebut dengan Multiple

Threshold (Gonzales dan Woods, 2002).

2.3.3. Background Subtraction

Subtraksi latar mempunyai peranan penting dalam visi komputer yaitu

dalam hal sistem pemantauan. Peranan yang dilakukan dalam subtraksi latar

adalah mengetahui atau membedakan bagian latar dan objek yang ada pada

sebuah citra. Untuk mengetahui adanya objek di dalam citra maka hal yang harus

dilakukan adalah dengan mempelajari atau mengetahui model dari latar. Ide dasar

dari subtraksi latar adalah

│background(r)-image(r)│= frame(r)………..(2.4)

│background(g)-image(g)│= frame(g)……….(2.5)

│background(b)-image(b)│= frame(b)……….(2.6) frame(r) > threshold……….……….(2.7)

frame(g) > threshold ………(2.8)


(20)

Bila pixel ke-i memenuhi persamaan tersebut, maka pixel tersebut digolongkan ke

dalam kelompok pixel objek dan selain itu adalah latar. Berikut adalah contoh

hasil subtraksi latar.

Gambar 2.4 Subtraksi Latar (Picardi dan Jan, 2003)

2.4. Color Space

2.4.1. RGB

Model warna RGB adalah model warna berdasarkan konsep penambahan

kuat cahaya primer yaitu Red, Green dan Blue. Dalam suatu ruang yang sama

sekali tidak ada cahaya, maka ruangan tersebut adalah gelap total. Tidak ada

signal gelombang cahaya yang diserap oleh mata kita atau RGB (0,0,0). Ruang


(21)

14

Gambar 2.5 RGB Colorwheels (Syuhadi,2010)

Apabila kita menambahkan cahaya merah pada ruangan tersebut, maka

ruangan akan berubah warna menjadi merah misalnya RGB (255,0,0), semua

benda dalam ruangan tersebut hanya dapat terlihat berwarna merah. Demikian

apabila cahaya kita ganti dengan hijau atau biru (Permana,2010). Pencerahan serta

pengaruh intensitas cahaya dalam ruang warna RGB dapat dilihat pada Gambar

2.6.


(22)

2.5. Computer Vision

Computer Vision adalah pencitraan komputer dimana aplikasi tidak

melibatkan manusia dalam proses pengulangan visual. Dengan kata lain, gambar

yang diperiksa dan di olah oleh komputer. Meskipun orang yang terlibat dalam

pengembangan sistem aplikasi, akhirnya membutuhkan komputer untuk

mengambil informasi visual secara langsung (Umbaugh, 1998).

Computer vision merupakan sebuah proses otomatis yang mengintegrasikan

sejumlah besar proses persepsi visual, seperti pengolahan citra, klasifikasi citra,

pengenalan citra dan akusisi citra. Computer vision didefinisikan sebagai salah

satu cabang ilmu pengetahuan yang mempelajari bagaimana komputer dapat

mengenali obyek yang diamati atau diobservasi. Cabang ilmu ini bersama

kecerdasan buatan (Artificial Intelligence) akan mampu menghasilkan sistem

kecerdasan visual (Visual Intelligence System) (Munir, 2004).

Vision = Geometri + Measurement + Interpretatio………(2.10) Proses-proses dalam computer vision dapat dibagi menjadi tiga aktivitas:

a. Memperoleh atau mengakuisisi citra digital.

b. Melakukan teknik komputasi untuk memperoses atau memodifikasi data citra.

c. Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan

untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan,


(23)

16

2.6. OpenCV

OpenCV (Open Computer Vision) adalah sebuah API (Application

Programming Interface) library yang sudah sangat familiar pada pengolahan citra computer vision.Computer vision itu sendiri adalah salah satu cabang dari bidang

ilmu pengolahan citra (Image Processing) yang memungkinkan komputer dapat

melihat seperti manusia.Dengan computer vision tersebut komputer dapat

mengambil keputusan, melakukan aksi, dan mengenali terhadap suatu objek.

Beberapa pengimplementasian dari computer vision adalah face recognition, face

detection, face/pbject tracking, road tracking, dll.

OpenCV adalah library open source untuk computer vision untuk C/C++,

OpenCV didesain untuk aplikasi real-time, memiliki fungsi-fungsi akuisisi yang

baik untuk image/video. OpenCV juga menyediakan interface ke Integrated

Performance Primitives (IPP) Intel sehingga jika anda bisa mengoptimasi aplikasi computer vision anda jika menggunakan prosesor Intel (Syafi’i,2011).

Fitur yang dimiliki OpenCV antara lain :

1. Manipulasi data citra (alocation, copying, setting, convert).

2. Citra dan video I/O (file dan kamera based input, image/video file output).

3. Manipulasi Matriks dan Vektor beserta rutin-rutin aljabar linear (products,

solvers, eigenvalues, SVD).

4. Data struktur dinamis (lists, queues, sets, trees, graphs).

5. Pemroses citra fundamental (filtering, edge detection, corner detection,

sampling and interpolation, color conversion, morphological operations, histograms, image pyramids).


(24)

6. Analisis struktur(connected components, contour processing, distance

Transform, various moments, template matching, Hough Transform, polygonal approximation, line fitting, ellipse fitting, Delaunay triangulation).

7. Kalibrasi kamera (calibration patterns, estimasi fundamental matrix,

estimasi homography, stereo correspondence).

8. Analisis gerakan (optical flow, segmentation, tracking).

9. Pengenalan obyek (eigen-methods, HMM).

10. Graphical User Interface (display image/video, penanganan keyboard dan

mouse handling, scroll-bars).

OpenCV terdiri dari 3 library, yaitu:

1. CV : Untuk algoritma Image Processing dan Vision

2. Highgui : Untuk GUI, Image dan Video I/O


(25)

18

BAB III

METODE PENELITIAN

Untuk pengumpulan data yang diperlukan dalam melaksanakan tugas akhir,

ada beberapa cara yang telah dilakukan, antara lain:

1. Studi kepustakaan

Studi kepustakaan berupa pencarian data-data literatur dari fungsi pada

library OpenCV, melalui pencarian dari internet, dan konsep-konsep teoritis dari

buku-buku penunjang serta metode yang akan digunakan untuk melakukan

pengolahan citra.

2. Penelitian laboratorium

Penelitian laboratorium dilakukan dengan perancangan perangkat

lunak,implementasi perangkat lunak, pengambilan data pengujian aplikasi,

kemudian melakukan evaluasi dari data hasil pengujian.

3.1. Perancangan Sistem dan Blok Diagram Sistem

Model penelitian yang akan dilakukan adalah model penelitian

pengembangan. Untuk mempermudah dalam memahami sistem yang akan dibuat


(26)

Gambar 3.1 Blok Diagram Sistem Secara Umum

Sebagai input, citra didapatkan dari kamera yang terpasang pada miniatur.

Kemudian diproses menggunakan console application Visual C++ 2008 dengan

memanfaatkan library OpenCV. Citra yang diperoleh adalah citra keadaan blok

parkir mobil. Setelah mendapatkan citra tersebut, maka selanjutnya citra akan

diproses untuk kemudian disubtraksi/dikurangkan (subtraction) dengan citra

sampel (citra blok tanpa mobil). Dari hasil subtraksi tersebut dilakukan klasifikasi

benda yang teridentifikasi merupakan mobil atau tidak. Pada akhirnya akan

Display

Personal Computer

Visual C++ (add: OpenCV)


(27)

20

ditampilkan informasi pada PC berupa output nomor tempat yang kosong

(diasumsikan bahwa setiap tempat parkir terdapat nomor urut), selain itu juga citra

yang diambil secara streaming akan ditampilkan pada layar PC.

3.2. Perancangan Perangkat Keras

Flowchart perancangan dan pembuatan miniatur sebagai berikut :

Gambar 3.2 Flowchart Pembuatan Miniatur

Perangkat keras pada Tugas Akhir ini berupa miniatur lantai 2 tempat parkir

mobil di salah satu pusat perbelanjaan di Surabaya. Sebelum proses pembuatan

miniatur telah dilakukan riset untuk mengetahui desain dan ukuran tempat parkir

tersebut, selanjutnya dicari ukuran yang tepat untuk diterapkan dalam bentuk

miniatur menggunakan skala perbandingan sehingga hasil program bisa

mendekati hasil sesungguhnya apabila diterapkan secara real.

Riset tempat

Perancangan miniatur

Pembuatan miniatur

Uji coba miniatur

start


(28)

Dari hasil riset diperoleh data yaitu panjang lokasi parkir 50 m dengan tinggi 2,1

m dan lebar 9 m. Dari hasil tersebut ditentukan dimensi miniatur dan didapatkan

skala perbandingan 1:25, sehingga panjang miniatur menjadi 2 m, tinggi 8,4 cm,

dan lebar 36 cm. Hasil dimensi miniatur tersebut diperoleh dari penghitungan

sebagai berikut:

Diketahui:

Panjang sesungguhnya (PS) : 50 m = 5000 cm

Tinggi sesungguhnya (TS) : 2,1 m = 210 cm

Lebar sesungguhnya (LS) : 9 m = 900 cm

Ketinggian Kamera sesungguhnya (KS) : 2,1 m = 210 cm

Jarak Kamera dari mobil sesungguhnya (JK) : 6 m = 600 cm

Skala 1:25

Dicari : Pm, Tm, Lm

Penyelesaian:

Panjang miniatur (Pm) = 5000/25 = 200 cm = 2 m

Tinggi miniatur (Tm) = 210/25 = 8,4 cm

Lebar miniatur (Lm) = 900/25 = 36 cm

Ketinggian kamera miniatur (Km) = 210/24 = 8,4 cm

Jarak Kamera miniatur (Jm) = 600/25 = 24 cm

Karena webcam yang digunakan secara default sudah dalam kondisi diperbesar

maka pada miniatur ditentukan jarak kamera menjadi 36 cm sehingga


(29)

22

3.3. Perancangan Perangkat Lunak

Dalam perancangan perangkat lunak, compiler yang digunakan adalah

Microsoft Visual C++ 2008. Untuk library yang digunakan pada pengolahan citra

yaitu library OpenCV v2.3.

Kemudian dalam penulisannya atau dalam pembuatan program, akan

meliputi bagian-bagian penting dalam setiap langkah-langkah per bagian sesuai

dengan algoritma atau logika sekuensial dari awal sampai output. Berikut adalah

algoritma program secara global.

Gambar3.3 Flowchart sistem secara global

Menit = = 5

Ya Tidak

Pengambilan citra parkir kosong

Streaming Kamera

Subtraksi region 1

Subtraksi region 2

Subtraksi region 3

Greyscale region 1

Grayscale region 2

Grayscale region 3

A

B start


(30)

Gambar3.4 Flowchart sistem secara global (lanjutan)

Thresholding region 1 Thresholding region 2 Thresholding region 3

menghitung white pixel region 1 menghitung white pixel region 2 menghitung white pixel region 3

Tidak

Ya Region 1 kosong

B Region 1 terdapat mobil

hasil < 0,35

Region 2 kosong Region 2

terdapat mobil

hasil1< 0,35

Region 3 kosong Region 3

terdapat mobil

hasil2< 0,35 Ya Tidak

Ya Tidak

List parkir kosong

Key == esc A

Ya Tidak


(31)

24

Gambar 3.3 dan Gambar 3.4 adalah Flowchart sistem secara global atau

keseluruhan. Dimulai dari pengambilan citra sampel berupa kondisi parkir yang

masih kosong. Proses berikutnya adalah kamera melakukan streaming dan

mengambil/menyimpan citra kondisi parkir setiap 5 menit sekali (update data).

Kemudian menentukan titik koordinat area yang menjadi acuan dalam proses

pengolahan citra selanjutnya. Setelah itu mengambil dan mengakses nilai RGB

per pixel dari citra sampel dan citra update (citra hasil capture setiap 5 menit

sekali). Setelah didapatkan nilai RGB per pixel dari masing-masing citra dan

selanjutnya nilai RGB dari citra sampel akan dikurangkan (subtraction) dengan

nilai RGB dari citra update. Setelah didapatkan hasil pengurangan nilai RGB

maka citra hasil pengurangan/subtraksi diubah dalam bentuk citra abu-abu atau

biasa disebut Grayscale. Proses selanjutnya adalah citra yang sudah dalam bentuk

Grayscale diubah menjadi bentuk citra binary melalui proses thresholding agar

dapat dihitung jumlah pixel putih pada area tempat mobil diparkir, dari hasil

penghitungan tersebut didapatkan nilai yang akan dianalisis dan dikategorikan ada

atau tidaknya mobil di area tersebut dan proses yang terakhir adalah hasil analisis

akan ditampilkan di output berupa list nomor parkir yang kosong.

3.4. Pengambilan Citra Sampel

Citra sampel yang dimaksud adalah citra kondisi parkir saat dalam keadaan

tanpa adanya mobil. Citra sampel tersebut digunakan untuk data yang akan

disubtraksi dengan citra update. Pengambilan citra sampel dilakukan secara


(32)

nama background.jpg. Ketika program berjalan program akan memuat citra

sampel menggunakan fungsi cvLoadImage dan disimpan dalam variabel img,

format variabel img adalah Iplimage. Berikut potongan program untuk memuat

citra sampel .

IplImage* img = cvLoadImage( "D:\\pict_TA\\background.jpg" );

3.5. Penerimaan Data Citra

Setiap data citra yang dikirimkan dari kamera diakses dengan pointer

CvCapture dan menggunakan fungsi cvCaptureFromCAM(1). Angka 0 pada

fungsi cvCaptureFromCAM(0) merupakan indeks dari kamera yang digunakan.

Berikut adalah potongan program untuk proses penerimaan data citra dari Kamera

menggunakan.

CvCapture* capture = cvCaptureFromCAM(0);

Data citra yang ditangkap adalah data citra dengan ruang warna RGB dan

disimpan langsung pada variabel Iplimage (Intel Image Processing Library) yaitu

stuktur data untuk penyimpanan data citra pada OpenCV. Urutan channel data

dalam Iplimage adalah BGR sehingga untuk menampilkan warna sesungguhnya.

3.6. Streaming Citra

Untuk menampilkan data citra yang sudah tersimpan pada Iplimage ke

dalam window baru digunakan prototipe fungsi pada library OpenCV yaitu

cvShowImage (const char *name, const CvArr *image). Dengan ketentuan

parameter const char *name adalah nama window dan const CvArr *image adalah

Iplimage yang ditampilkan. Berikut program yang digunakan untuk menampilkan


(33)

26

while (1) {

IplImage*BG;

CvCapture* capture = cvCaptureFromCAM(0); cvNamedWindow("original1”);

cvShowImage("original1",BG); z = cvWaitKey(10);

if(z == 27)

break; }

Untuk refresh citra yang ditampilkan pada window dibutuhkan fungsi

cvWaitKey. Ini dikarenakan OS memiliki waktu minimum dalam menjalankan threads secara bergantian. Fungsi ini tidak memberikan delay persis seperti

parameter yang telah set, namun delay tergantung threads yang sedang berjalan

pada komputer saat itu. Nilai yang dikeluarkan dari fungsi ini adalah kode untuk

penekanan tombol atau -1 apabila tidak ada tombol yang ditekan selama waktu

yang ditentukan.

3.7. Proses Update Citra Kondisi Parkir

Flowchart proses update data setiap 5 menit sekali adalah sebagai berikut.

Gambar3.5 Flowchart Update Citra Kondisi Parkir

Streaming kamera

Akses menit (time sistem)

!fc and

menit % 5== 0 fc = false

ya

tidak fc = false

A B


(34)

Gambar3.6 Flowchart Update Citra Kondisi Parkir (lanjutan)

Pada Gambar 3.5 dan Gambar 3.6 di atas, proses streaming dijalankan dan

program juga mengakses menit yang terdapat pada time system, selain itu pada

inisialisasi fc yang merupakan flag diberi nilai awal false. Ketika berada pada

kondisi !fc dan menit mencapai 5 menit atau kelipatannya (nilai didapat dari menit

dimodulus 5) maka program akan menyimpan hasil capture di variabel BG.

Variabel BG adalah variabel dengan format Iplimage yang digunakan untuk

menampung data citra hasil update. Proses selanjutnya variabel BG akan diolah

sampai mendapatkan hasil yang diinginkan setelah itu nilai fc diberi nilai true.

Tetapi jika waktu belum mencapai 5 menit maka program tidak akan

mengeksekusi proses selanjutnya hanya menjalankan streaming.

3.8. Pengolahan Citra

Proses pengolahan citra adalah proses yang paling utama dalam pengerjaan

program untuk sistem pada Tugas Akhir ini karena menggunakan Kamera sebagai

sensor pendeteksinya. Berikut adalah Flowchart pengolahan citra secara garis

besar :

BG = citra

fc = true A


(35)

28

Gambar3.7 Flowchart Pengolahan Citra

Metode utama yang digunakan pada proses pengolahan citra adalah metode

Background Subtraction image. Untuk mendukung metode utama dilakukan juga

proses pengolahan citra pendukung seperti konversi warna RGB menjadi bentuk

abu-abu (grayscaling) dan konversi warna RGB menjadi hitam putih/biner

(thresholding). Proses akses pixel juga merupakan proses yang penting untuk

menunjang metode Background Subtraction. Untuk mempermudah proses

mendeteksi mobil maka pada image sampel maupun image update dibagi menjadi

tiga area/region mobil ( 1 blok berisi 3 mobil) dengan koordinat pixel yang telah

ditentukan. Untuk proses pengolahan citra lebih detail lagi akan dijelaskan pada

tiap-tiap sub bab.

Tresholding

grayscaling Subtraction Image

Citra

List tempat

parkir start


(36)

3.8.1. Menentukan Koordinat Area

Proses menentukan koordinat masing-masing area dilakukan secara manual.

Untuk mempermudah mencari koordinat yang tepat maka perlu menampilkan

hasil koordinat yang dicoba dengan memberi tanda agar dapat terlihat posisi

koordinatnya. Persegi adalah tanda yang akan digunakan untuk menandai

masing-masing area pada program Tugas Akhir ini. Pada proses memberi tanda (masking)

digunakan function bawaan library OpenCV yaitu.

cvRectangle(CvArr*img,cvPoint(x,y),cvPoint(x1,y1),cvScalar(255,255,255),t,l).

Variabel CvArr*img merupakan citra yang akan diberi gambar persegi, sedangkan

untuk variabel cvPoint(x,y) berfungsi menentukan posisi titik sebelah kiri atas

pada persegi yang akan dibuat dan fungsi cvPoint(x1,y1) adalah menentukan

posisi titik sebelah kanan bawah pada persegi yang akan dibuat. cvScalar(RGB)

berfungsi untuk menentukan warna persegi. Variabel t adalah variabel untuk

mewakili nilai ketebalan garis yang diinginkan sedangkan variable l adalah untuk

menentukan jenis garisnya.

Menentukan koordinat masing-masing area dilakukan agar dapat mengenali

objek pada lokasi yang berbeda-beda dan dapat mengetahui area yang telah terisi

mobil dan yang masih kosong.

3.8.2. Akses Pixel

Library OpenCV telah menyediakan function untuk Background Subtraction

yaitu cvSub(source1, source2, dest, NULL) tetapi hasil subtraksi yang


(37)

30

manual. Dalam proses Background Subtraction secara manual langkah yang

pertama adalah mengakses RGB per pixel pada citra sampel dan citra update.

Berikut adalah potongan program untuk mengakses RGB per pixel dari citra

sampel dan citra update :

int blue = ((uchar*)(img->imageData + img->widthStep*y))[x*3];

int green= ((uchar*)(img->imageData + img->widthStep*y))[x*3+1];

int red = ((uchar*)(img->imageData + img->widthStep*y))[x*3+2];

int b= ((uchar*)(BG->imageData + BG->widthStep*y))[x*3];

int g= ((uchar*)(BG->imageData + BG->widthStep*y))[x*3+1];

int r = ((uchar*)(BG->imageData + BG->widthStep*y))[x*3+2];

Variabel blue, green, dan red merupakan variabel untuk menampung nilai dari

RGB per pixel pada citra sampel, sedangkan variabel b,g, dan r digunakan pada

citra update. Variabel lainnya adalah img dan BG, img yaitu variabel yang

menampung data citra sampel sedangkan variabel BG untuk citra update.

Function ->imageData berguna untuk mendapatkan data gambar, sedangkan

function ->widthStep berguna untuk memeriksa per pixel. Variabel x dan y

adalah variabel yang digunakan untuk proses perulangan. Sedangkan untuk

mengakses komposisi warna RGB pada pixel digunakan ketetapan [x*3] untuk

warna biru, [x*3+1] untuk warna hijau, dan [x*3+2] untuk warna merah.

Pada saat sudah mendapatkan nilai RGB dari tiap-tiap pixel maka dilakukan

proses subtraksi. Setelah proses subtraksi maka pixel-pixel hasil subtraksi tersebut

harus dikembalikan ke bentuk semula yaitu dalam format image untuk diproses ke

tahap selanjutnya. Berikut adalah potongan program untuk memasukkan pixel ke

dalam bentuk image:

region-> imageData[region->widthStep*y+x*region-> nChannels+1]=sg; region->imageData[region->widthStep*y+x*region-> nChannels+2]=sr; region->imageData[region->widthStep*y+x*region-> nChannels+3]=sb;


(38)

region adalah variabel berformat image yang digunakan untuk menampung hasil

subtraksi. Sedangkan variabel sg,sr, dan sb adalah hasil subtraksi hijau, merah dan

biru.

3.8.3. Background Subtraction

Gambar 3.8 Flowchart Background Subtraction

x = x++

y = y++

479 < x < 801

Green(x,y)-g(x,y) Blue (x,y)-b(x,y) Red(x,y)-r(x,y) Hasil subtraksi region 2

x = x++

y = y++

A 49 < y < 451

Citra sampel

Citra update

Green(x,y)-g(x,y) Blue (x,y)-b(x,y) Red(x,y)-r(x,y)

9 < x < = 330

Hasil subtraksi

region 1 Akses Green pixel

Akses Blue pixel Akses Red pixel

N Y N Y N Y

Akses g pixel Akses b pixel Akses r pixel

Akses Green pixel Akses Blue pixel

Akses Red pixel

Akses g pixel Akses b pixel Akses r pixel start


(39)

32

Gambar 3.9 Flowchart Background Subtraction (lanjutan)

939 < x < 1239

Green(x,y)-g(x,y)

Blue (x,y)-b(x,y)

Red(x,y)-r(x,y)

Hasil subtraksi

region 3

x = x++

y = y++ Akses Green pixel

Akses Blue pixel

Akses Red pixel A

Y

N

Akses g pixel

Akses b pixel

Akses r pixel


(40)

Pada Gambar 3.8 dan Gambar 3.9 merupakan Flowchart Background

Subtraction. Dalam Flowchart tersebut telah ditentukan koordinat pixel untuk

masing-masing area/region dengan rincian berikut.

a. Area/region 1, berada diantara koordinat x,y(10<=x<=330

,50<=y<=450)

b. Area/region 2, berada diantara koordinat x,y(480<=x<=800,

50<=y<=450)

c. Area/region 3, berada diantara koordinat x,y(940<=x<=1240,

50<=y<=450)

Pada awalnya image akan koordinat pixel gambar diperiksa satu persatu,

apabila mendapatkan koordinat yang sama dengan koordinat area 1 maka proses

selanjutnya adalah mengakses pixel RGB pada gambar sampel dan gambar

update.

Pada Flowchart pixel RGB pada gambar sampel dinyatakan dengan Green

pixel, Blue pixel dan Red pixel. Sedangkan pada gambar update dinyatakan

dengan g pixel, b pixel dan r pixel. Setelah proses akses pixel maka pixel-pixel

tersebut akan di subtraksi sesuai dengan koordinat dan jenis warnanya. Setelah

didapatkan pixel-pixel hasil subtraksi maka langkah berikutnya adalah

mengelompokkan kembali pixel-pixel hasil subtraksi dalam format image ke

dalam variabel region1. Tetapi apabila koordinat pixel tidak sama dengan

koordinat area 1 maka akan dilanjutkan dengan memeriksa apakah berada di

koordinat area 2 atau area 3. Proses yang dijalankan apabila berada di koordinat

area 2 atau area 3 sama dengan urutan proses yang berada di area 1. Region 2


(41)

34

sedangkan region 3 adalah untuk menyimpan hasil subtraksi area 3.Jika koordinat

yang di periksa tidak berada di koordinat area 1, area 2 dan area 3 maka program

tidak memproses pixel tersebut.

Untuk melakukan proses Background Subtraction, maka harus didapatkan

terlebih dahulu citra sampel untuk kemudian dijadikan acuan perbandingan dan

pengurangan dengan citra baru yang ingin subtraksi. Dan background subtraction

akan menemukan bagian citra baru berupa objek yang berbeda antara citra sampel

dengan citra update. Berikut pada Gambar 3.10 adalah contoh background

subtraction.

Gambar 3.10 Contoh Background Subtraction

Pada Gambar 3.10 terdapat citra dengan nama figure d yang merupakan citra

sampel yang akan disubtraksi dengan citra update (figure a), pada figure a

terdapat objek yang berbeda dari figure d yaitu terdapat mobil yang berada pada

area tersebut sehingga ketika disubtraksi maka menghasilkan citra seperti pada


(42)

3.8.4. Grayscaling

Grayscale adalah suatu format citra atau gambar yang tiap-tiap pixel

gambar hanya terdiri dari 1 channel warna. Proses perubahan warna dari RGB

menjadi Grayscale bertujuan untuk mempermudah proses selanjutnya yaitu proses

perubahan Grayscale menjadi biner. Sehingga setelah proses subtraksi berhasil

dilakukan maka langkah selanjutnya ialah melakukan konversi format gambar

dari RGB menjadi Grayscale. Untuk mengubah RGB menjadi Grayscale dapat

digunakan rumus.

Grayscale = 0.299R + 0.587G + 0.114B

atau dapat menggunakan algoritma dengan merata-rata nilai ketiga buah channel

RGB.

Grayscale = ( R + G + B ) / 3

Perubahan gambar RGB menjadi Grayscale menggunakan library openCV pada

visual C++ menggunakan perintah sebagai berikut.

cvCvtColor(region1,gimask1,CV_RGB2GRAY);

Pada perintah tersebut sudah terdapat dua frame yaitu region1 dan

gimask1. region1 adalah frame RGB hasil subtraksi sedangkan gimask1 adalah

frame yang disediakan untuk Grayscale yang akan dibuat. Sehingga maksud dari

potongan perintah tersebut adalah mengubah gambar region1 menjadi Grayscale

dengan fungsi CV_RGB2GRAY lalu disimpan pada frame bernama

gimask1.Tetapi terlebih dahulu dibuat deklarasi pointer untuk image graycale,

yaitu dengan cara seperti berikut.


(43)

36

Pada potongan program tersebut terdapat IPL_DEPTH_8U yang artinya

adalah tiap-tiap pixel bernilai 8 bit. Sedangkan angka 1 setelah koma dibelakang

IPL_DEPTH_8U bermakna tiap-tiap pixel hanya terdiri dari sebuah channel.

3.8.5. Thresholding

Untuk melakukan penghitungan pixel putih pada masing-masing region,

maka data citra dikonversikan ke dalam citra biner dengan memanfaatkan

thresholding. Thresholding adalah proses mengubah suatu citra berwarna atau

berderajat keabuan (Grayscale) menjadi citra biner atau hitam putih, sehingga

dapat diketahui daerah mana yang termasuk objek dan background dari citra

secara jelas (Gonzales dan Woods, 2002). Citra hasil thresholding biasanya

digunakan lebih lanjut untuk proses pengenalan obyek serta ekstraksi fitur. Tipe

data dari hasil proses thresholding adalah tipe data float, yaitu antara 0 sampai

dengan 1. Dengan parameter yang di set sebelumnya maka data citra yang jika

melebihi batas yang ditentukan akan dibuat menjadi 1 atau putih dan jika dibawah

batas yang ditentukan maka akan dibuat menjadi 0 atau hitam.

Namun pada library OpenCV telah disediakan function untuk memproses

thresholding, yaitu dengan menggunakan cvThreshold. Berikut merupakan baris perintah thresholding.

cvThreshold(gimask1, im_bw, 30, 255, CV_THRESH_BINARY);

Pada perintah tersebut gambar Grayscale dari frame gimask1 dirubah menjadi

biner (CV_THRESH_BINARY) dengan threshold 40 dan disimpan pada frame

im_bw. Threshold bertujuan mengubah pixel diatas threshold untuk menjadi pixel

bernilai 255 sedangkan dibawah threshold dirubah menjadi 0, dengan demikian


(44)

3.9. Penghitungan Piksel Putih (Counting White Pixel)

Gambar 3.11 Flowchart Accounting White Pixel

subtraksi start

grayscaling

thresholding

49 < y < 451

Akses ptr pixel

9 < x < = 330

Value = ptr[x]

Value = = 255 White1 = 0

White2 = 0 White3 = 0 Pixel1 = 0 Pixel2=0 Pixel3=0

White1 ++ Pixel1 ++

A

B

Y

N

Y

Y

N

N

C

C

D


(45)

38

Gambar 3.12 Flowchart Accounting White Pixel (lanjutan)

Pada Gambar 3.11 dan Gambar 3.12 merupakan Flowchart proses untuk

menghitung pixel warna putih pada 3 area/region dari gambar hasil subtraksi yang

telah dibinerkan. Pada awalnya variabel counter (white1,white2,

white3,pixel1,pixel2 dan pixel3) diberi nilai 0. Setelah melakukan proses

subtraksi citra sampel dengan citra update dan telah dilakukan proses Grayscale

A

49 < y < 451

Akses ptr1 pixel

479 < x < 801

Value1 = ptr1[x]

Value1 = = 255

White2 ++ Pixel2 ++

49 < y < 451

Akses ptr2 pixel

939 <x <1239

Value2 = ptr2[x]

Value2 = = 255 White3 ++ Pixel3 ++ stop B Y Y Y Y Y Y N

N N

N


(46)

serta thresholding, selanjutnya memeriksa koordinat pixel. Jika koordinat y tepat

pada range koordinat y area 1 maka proses akan mengakses pixel dan nilainya

dimasukkan pada variabel ptr. Selanjutnya jika koordinat x berada pada koordinat

x area 1 maka nilai variabel ptr dimasukkan ke dalam variabel value untuk

diperiksa apakah bernilai 255 (warna putih). Apabila value bernilai 255 maka nilai

variabel counter white1 dan pixel1 ditambahkan 1. Tetapi apabila koordinat x

tidak berada pada koordinat x area 1 maka koordinat akan diperiksa kembali

untuk mengetahui apakah berada di area 2 atau area 3 atau tidak berada di

koordinat 3 area tersebut. Untuk proses penghitungan pixel di area 2 maupun 3

sama seperti halnya di area 1. Sedangkan jika diluar koordinat 3 area tersebut

maka tidak akan diproses lebih lanjut. Berikut adalah potongan program untuk

menghitung pixel pada salah satu area.

for ( y = 50 ; y <= 450 ; y++) {

uchar* ptr = (uchar*)(im_bw->imageData+im_bw->widthStep*y );

for ( x = 10 ; x <= 330 ; x++) {

value = ptr[x];

if (value == 255) white1++; pixel1++; }

}

Pada potongan program tersebut terdapat variabel im_bw yaitu variabel

yang menampung frame biner hasil subtraksi area 1.

Penghitungan pixel sangat penting dilakukan untuk proses selanjutnya yaitu

identifikasi benda. Karena identifikasi benda dilakukan dengan menghitung

prosentasi pixel putih pada masing-masing area.


(47)

40

3.10.Identifikasi Benda

Gambar3.13 Flowchart Identifikasi benda

start

Hasil1 = white1/pixel1 Hasil2 = white2/pixel2 Hasil3 = white3/pixel3

Hasil1 < 0,35

Nomor 1

Hasil2 < 0,35

Nomor 2

Nomor 3 Hasil3 <0,35 Parkir penuh

stop Pixel 1

Pixel 2 Pixel 3 White1 White2 White3

Y Y

Y

N N


(48)

Pada Flowchart Gambar 3.13 untuk menentukan benda yang teridentifikasi

merupakan mobil atau tidak maka terlebih dahulu total pixel putih (white1 untuk

area 1, dst) dibagi dengan total keseluruhan pixel (pixel1 untuk area 1, dst) dari

masing-masing area sehingga didapatkan prosentasi pixel putih pada tiap-tiap

area. Kemudian nilai dari hasil bagi masing-masing area tersebut akan ditampung

di variabel Hasil1 (untuk area 1), Hasil2 (untuk area 2) dan Hasil3 (untuk area 3).

Setelah ditampung ke dalam variabel maka hasil akan dibandingkan dengan batas

minimum prosentasi yang telah ditentukan yaitu 35% atau 0,35.

Jika prosentasi pixel putih pada area 1 kurang dari 0,35 maka area tersebut

dianggap tidak ada mobil dan pada list nomor parkir akan ditampilkan nomor 1

untuk menginformasikan kepada pengguna parkir bahwa tempat parkir nomor 1

dapat ditempati. Jika prosentasi pixel putih lebih dari 0,35 maka area tersebut

dianggap terdapat mobil dan akan dilanjutkan untuk mengeksekusi proses

selanjutnya yaitu mengidentifikasi pada area yang lain. List parkir akan

menginformasikan bahwa parkir telah penuh apabila prosentasi pixel putih pada

semua area parkir melebihi 0,35. Berikut adalah potongan program untuk

identifikasi benda.

if ( hasil1 < 0.35)

cout << " 1 " << endl;

if ( hasil2 < 0.35)

cout << " 2 " << endl;

if ( hasil3 < 0.35)

cout << " 3 " << endl;

if ( hasil1 > 0.35 && hasil2 > 0.38 && hasil3 > 0.35) cout << " parkir penuh " << endl;


(49)

42

3.11.Metode Pengujian dan Evaluasi Sistem

Untuk mengetahui apakah aplikasi yang dibuat dapat berjalan sesuai yang

diharapkan, maka akan dilakukan pengujian dan evaluasi sistem untuk setiap

tahapan-tahapan dalam pembuatan aplikasi. Dimulai dari streaming citra, update

citra kondisi parkir, menentukan koordinat pada tiap-tiap area, akses pixel,

Backgorund Subtraction, thresholding, penghitungan pixel putih dan identifikasi

benda.

3.11.1.Pengujian Streaming Citra

Untuk mengetahui apakah data citra sudah dapat diakses langsung melalui

Kamera, maka dilakukan pengujian dengan cara menjalankan (running) program

pemanggilan kamera dari Visual C++ 2008, yaitu untuk mengakses console

Kamera secara langsung dari program. Kemudian citra yang tampil akan diuji

apakah dapat menampilkan data citra secara streaming.

3.11.2.Pengujian Update Citra Kondisi Parkir

Untuk pengujian apakah program dapat melakukan update data berupa

citra kondisi parkir secara otomatis maka akan ditampilkan waktu sistem. Hal ini

dilakukan untuk mengetahui waktunya. Selain menampilkan waktu sistem, juga

dilakukan cara lain yaitu membuka direktori lokasi tempat hasil update akan

disimpan ( D:\\Pict_TA\\update.jpg) yang bertujuan untuk mengetahui apakah

gambar yang dimaksud akan berubah dan disimpan setiap 5 menit pada direktori


(50)

3.11.3.Pengujian Penentuan Koordinat Pada Tiap Area

Untuk mengetahui posisi koordinat acuan pada masing-masing area maka

program akan menampilkan window image berisi citra yang terdapat tanda

persegi pada masing-masing area yang berfungsi untuk memberi batas area yang

akan diproses datanya.

3.11.4.Pengujian Akses Pixel

Untuk mengetahui apakah program berhasil mengakses RGB dari tiap-tiap

pixel maka akan ditampilkan window image yang menyimpan hasil akses pixel

merah, hijau dan biru. Selain itu untuk mendukung pengujian maka output nilai

pixel RGB juga ditampilkan.

.

3.11.5.Pengujian Background Subtraction

Untuk pengujian metode Background Subtraction, dilakukan dengan

mengurangkan data citra sampel dengan citra update. Hasil subtraksi akan

disimpan pada frame. Untuk mengetahui apakah program berhasil melakukan

subtraksi maka akan ditampilkan 3 window image hasil subtraksi (hasil subtraksi

area 1, area 2 dan area 3).

3.11.6.Pengujian Thresholding

Untuk pengujian proses thresholding maka ditampilkan 3 window image


(51)

44

biner. 3 window image tersebut meliputi window image untuk area 1, area 2 dan

area 3.

3.11.7.Pengujian Penghitungan Pixel

Untuk pengujian proses penghitungan pixel maka ditampilkan output hasil

perhitungan sehingga dapat diketahui total pixel putih pada masing-masing area.

3.11.8.Pengujian Identifikasi Benda

Untuk pengujian proses identifikasi benda pada masing-masing area maka

ditampilkan output berupa hasil bagi pixel putih dengan total pixel keseluruhan

pada area. Selain itu juga ditampilkan output berupa list nomor tempat parkir yang

masih kosong.

3.11.9.Evaluasi Sistem Keseluruhan

Setelah melalui seluruh proses pengujian di atas maka perlu dilakukan

pengujian sistem secara keseluruhan. Dimulai dari melihat data citra yang

ditangkap oleh Kamera, dan melihat tampilan data citra yang ditampilkan window

image. Setelah itu, melalui tahap update citra, yaitu ketika waktu sistem

menunjukkan menit ke-5 atau kelipatannya maka gambar yang tersimpan pada

direktori D://Pict_TA//update.jpg akan berubah sesuai kondisi citra pada saat

menit ke-5 atau kelipatannya dan apabila waktu belum mencapai 5 menit atau

kelipatannya maka gambar yang tersimpan tidak akan berubah. Kemudian

dilanjutkan dengan melihat hasil tahap pengolahan citra, yaitu ketika tiap 5 menit


(52)

tambahan, kamera pada miniatur juga mengirimkan citra yang disorot untuk

ditampilkan pada PC secara streaming. Jika keseluruhan sistem telah berjalan

sesuai dengan langkah-langkah tersebut, maka secara keseluruhan sistem ini


(53)

46

BAB IV

PENGUJIAN SISTEM

Pengujian sistem yang dilakukan merupakan pengujian terhadap program

mendeteksi tempat parkir yang telah selesai dibuat. Dimulai dari pengambilan

citra dari webcam, pengolahan citra yang dimulai dengan streaming Citra, update

citra kondisi parkir, menentukan koordinat pada tiap-tiap area, akses pixel,

Backgorund Subtraction, thresholding, penghitungan pixel putih dan identifikasi

benda. kemudian yang terakhir adalah pengujian sistem secara keseluruhan yaitu

Program akan mengeluarkan output list nomor parkir yang kosong sesuai kondisi

setiap 5 menit sekali.

4.1 Pengujian Streaming Citra Melalui webcam

Pengujian streaming ini dilakukan dengan mengintegrasikan Microsoft

Visual C++ melalui library OpenCV. Yaitu untuk memanggil serta menjalankan

console Webcam tersebut.

4.1.1 Tujuan

Tujuan pengujian ini yaitu untuk mengetahui apakah aplikasi sudah mampu

menampilkan data citra dari webcam ke aplikasi pada Visual C++ dan apakah


(54)

4.1.2 Alat yang Digunakan

1. Microsoft Visual C++ 2008

2. Webcam

3. Personal Computer (PC)

4.1.3 Prosedur Pengujian

1. Menjalankan program console pada Microsoft Visual C++ 2008

2. Menjalankan program untuk mengakses data citra pada kamera PC tersebut

3. Melihat hasil data citra pada window

4.1.4 Hasil Pengujian

Setelah melakukan pengujian sesuai dengan prosedur diatas berikut adalah

gambar yang didapatkan dari Webcam pada Gambar 4.1.


(55)

48

4.2 Pengujian Update Citra Kondisi Parkir

Pengujian update citra kondisi parkir dilakukan dengan melihat perubahan

gambar yang tersimpan pada direktori D:\\Pict_TA\\update.jpg dan melihat time

sistem sebagai waktu acuan.

4.2.1 Tujuan

Tujuan pengujian ini yaitu untuk mengetahui apakah aplikasi sudah mampu

mengambil gambar secara otomatis setiap 5 menit sekali.

4.2.2 Alat yang Digunakan

1. Microsoft Visual C++ 2008

2. Personal Computer (PC)

3. Webcam

4. Miniatur parkir mobil

4.2.3 Prosedur Pengujian

1. Menjalankan program console pada Microsoft Visual C++ 2008

2. Menjalankan program untuk mengakses data citra pada Webcam

3. Menjalankan program untuk streaming citra

4. Menjalankan program untuk mengakses time system

5. Membuka direktori D:\\Pict_TA, melihat file bernama update.jpg


(56)

4.2.4 Hasil Pengujian

Hasil dari pengujian ini adalah mengetahui perubahan nilai pada file

update.jpg yaitu berupa perubahan gambar yang tersimpan. Karena file tersebut

akan dikurangkan dengan citra sampel. Setelah melakukan pengujian sesuai

dengan prosedur diatas berikut adalah gambar hasil proses update citra kondisi

parkir .

Gambar 4.2 Gambar Citra Kondisi Awal Waktu 15: 35


(57)

50

Gambar 4.3 Gambar Citra Kondisi Parkir Setelah Beberapa Menit

Pada Gambar 4.3 menunjukkan bahwa data telah di update yaitu kondisi awal

pada blok tersebut terdapat 2 mobil pada pukul 15:35 (Gambar 4.2). Kemudian

terdapat 1 mobil lagi parkir pada blok tersebut sehingga pada saat update data

maka file image “update.jpg” pada direktori D:\\Pict_TA juga akan berubah mengikuti kondisi saat proses update terakhir.

4.3 Pengujian Penentuan Koordinat Pada Tiap Area

Pengujian penentuan koordinat pada tiap area dilakukan dengan melihat

posisi tanda persegi pada gambar yang telah ditampilkan.

4.3.1 Tujuan

Tujuan pengujian ini yaitu untuk mengetahui apakah koordinat pixel yang

menjadi acuan dari 3 area sudah tepat.


(58)

4.3.2 Alat yang Digunakan

1 Microsoft Visual C++ 2008

2 Personal Computer (PC)

3 Citra sampel

4 Citra update

4.3.3 Prosedur Pengujian

1. Menjalankan program console pada Microsoft Visual C++ 2008

2. Menjalankan program untuk mengakses data citra pada Webcam

3. Menjalankan program untuk memuat gambar

4. Menjalankan program untuk membuat tanda persegi

5. Menjalankan program untuk menampilkan window image citra sampel dan

update

4.3.4 Hasil Pengujian

Hasil dari pengujian ini adalah mengetahui apakah posisi koordinat yang

menjadi acuan proses dari masing-masing area yang telah ditentukan sudah berada


(59)

52

Gambar 4.4 Background Awal

Gambar 4.5 Background Setelah Diberi Tanda

Pada Gambar 4.5 menunjukkan bahwa proses menentukan koordinat dari

masing area berhasil dilakukan dengan member tanda persegi pada

masing-masing area. Persegi biru merupakan koordinat area 1, persegi ungu merupakan

koordinat area 2 dan persegi kuning merupakan koordinat area 3.

4.4 Pengujian Akses Pixel

Pengujian akses pixel dilakukan dengan menampilkan window image yang


(60)

bernilai biru. Selain itu ditampilkan juga output nilai dari masing-masing image

tersebut.

4.4.1 Tujuan

Tujuan pengujian ini yaitu untuk mengetahui apakah aplikasi dapat

mengakses pixel merah,hijau dan biru pada sebuah gambar.

4.4.2 Alat yang Digunakan

1. Microsoft Visual C++ 2008

2. Personal Computer (PC)

3. Citra sampel

4.4.3 Prosedur Pengujian

4. Menjalankan program console pada Microsoft Visual C++ 2008

5. Menjalankan program untuk mengakses data citra pada Webcam

6. Menjalankan program untuk memuat citra sampel

7. Menjalankan program untuk mengakses pixel

8. Menjalankan program untuk mengubah kumpulan pixel menjadi file berformat

image

9. Menjalankan program untuk menampilkan window image pixel merah, hijau


(61)

54

4.4.4 Hasil Pengujian

Hasil dari pengujian ini adalah mengetahui apakah program berhasil akses

tiap-tiap pixel sesuai dengan jenis warnanya yaitu merah,hijau dan biru. Indikasi

ketika program berhasil mengakses tiap-tiap pixel sesuai jenis warnanya adalah

hasil tampilan program berupa image kumpulan warna merah, hijau dan biru.

Berikut adalah gambar hasil pengujian akses pixel.

Gambar 4.6 Gambar Sampel


(62)

Gambar 4.8 Gambar Hasil Akses Pixel Hijau

Gambar 4.9 Gambar Hasil Akses Pixel Biru

4.5 Pengujian Background Subtraction

Pengujian Background Subraction dilakukan dengan menampilkan window

image yang berisi hasil subtraksi dari masing-masing area.

4.5.1 Tujuan

Tujuan pengujian ini yaitu untuk mengetahui apakah aplikasi dapat


(63)

56

4.5.2 Alat yang Digunakan

1. Microsoft Visual C++ 2008

2. Personal Computer (PC)

3. Citra sampel

4. Citra update

4.5.3 Prosedur Pengujian

1. Menjalankan program console pada Microsoft Visual C++ 2008

2. Menjalankan program untuk mengakses data citra pada Webcam

3. Menjalankan program untuk memuat citra sampel dan citra update

4. Menjalankan program untuk subtraksi

5. Menjalankan program untuk menampilkan window image hasil subtraksi

4.5.4 Hasil Pengujian

Hasil dari pengujian ini adalah mengetahui apakah program dapat

mengurangkan antara pixel RGB dari citra sampel dengan pixel RGB citra update.

Berikut merupakan tabel hasil proses Background Subtraction.


(64)

Tabel 4.1 Hasil Subtraction Background

Kondisi Citra update

Area 1 Setelah subtraksi

Area 2 Setelah subtraksi

Area 3 Setelah subtraksi

Kondisi kosong

Area 1 terisi

Area 1 & 2 terisi

Area 1 & 3 terisi


(65)

58

Kondisi Citra update

Area 1 Setelah subtraksi

Area 2 Setelah subtraksi

Area 3 Setelah subtraksi

Area 2 & 3 terisi

Area 3 terisi

Parkir terisi semua

Pada Tabel 4.1 merupakan hasil subtraksi dalam beberapa kondisi. Area 1,area 2

dan area 3 merupakan keterangan untuk mewakili nomor dari masing-masing slot

parkir. Seperti area 1 untuk slot parkir nomor 1, area 2 untuk slot parkir nomor 2,

dsb. Dari hasil subtraksi masing-masing area akan di thresholding agar dapat

melakukan penghitungan pixel sehingga dapat melakukan proses identifikasi


(66)

4.6 Pengujian Thresholding

Pengujian thresholding dilakukan dengan menampilkan window image yang

berisi gambar hasil subtraksi berformat grayscale dan thresholding dari

masing-masing area.

4.6.1 Tujuan

Tujuan pengujian ini yaitu untuk mengetahui apakah program dapat

mengkonversi format gambar ke bentuk grayscale dan biner.

4.6.2 Alat yang Digunakan

1. Microsoft Visual C++ 2008

2. Personal Computer (PC)

3. Citra hasil subtraksi area 1, area 2 dan area 3

4.6.3 Prosedur Pengujian

1. Menjalankan program console pada Microsoft Visual C++ 2008

2. Menjalankan program untuk mengakses data citra pada Webcam

3. Menjalankan program untuk memuat citra hasil subtraksi.

4. Menjalankan program untuk konversi RGB ke bentuk grayscale

5. Menjalankan program untuk konversi RGB ke bentuk biner


(67)

60

4.6.4 Hasil Pengujian

Hasil dari pengujian ini adalah mengetahui apakah program dapat mengubah

gambar dari format RGB menjadi format grayscale dan biner .

Gambar 4.10 Gambar Hasil Subtraksi


(68)

Gambar 4.12 Gambar Hasil Thresholding

4.7 Pengujian Penghitungan Pixel

Pengujian penghitungan pixel dilakukan dengan menampilkan output berupa

nilai total pixel putih dari tiap-tiap area.

4.7.1 Tujuan

Tujuan pengujian ini yaitu untuk mengetahui apakah program dapat

melakukan penghitungan pixel putih pada masing-masing area. Tujuan lainnya

adalah untuk mengetahui nilai total pixel putih dari masing-masing area.

4.7.2 Alat yang Digunakan

1. Microsoft Visual C++ 2008

2. Personal Computer (PC)


(69)

62

4.7.3 Prosedur Pengujian

1. Menjalankan program console pada Microsoft Visual C++ 2008

2. Menjalankan program untuk mengakses data citra pada Webcam

3. Menjalankan program untuk memuat gambar hasil subtraksi yang dibinerkan

4. Menjalankan program untuk penghitungan pixel

5. Menjalankan program untuk menampilkan output nilai

4.7.4 Hasil Pengujian

Hasil dari pengujian ini adalah mengetahui nilai total pixel warna putih yang

terdapat pada area 1, area 2 dan area 3. Berikut adalah gambar hasil pengujian

penghitungan pixel.


(70)

Gambar 4.14 Hasil Penghitungan Pixel Putih

4.8 Pengujian Identifikasi Benda

Pengujian penghitungan pixel dilakukan dengan menampilkan output berupa

list nomor parkir yang kosong, window image citra update, window image hasil

subtraksi yang telah dibinerkan dan output nilai hasil pembagian pixel putih

dengan total pixel pada masing-masing area.

4.8.1 Tujuan

Tujuan pengujian ini yaitu untuk mengetahui apakah program dapat


(71)

64

4.8.2 Alat yang Digunakan

4. Microsoft Visual C++ 2008

5. Personal Computer (PC)

6. Citra hasil subtraksi yang telah dibinerkan

7. Citra update

4.8.3 Prosedur Pengujian

6. Menjalankan program console pada Microsoft Visual C++ 2008

7. Menjalankan program untuk mengakses data citra pada Webcam

8. Menjalankan program untuk memuat citra update.

9. Menjalankan program untuk memuat gambar hasil subtraksi yang dibinerkan

10.Menjalankan program untuk mencari prosentasi pixel putih

11.Menjalankan program untuk menampilkan output prosentasi pixel putih

12.Menjalankan program untuk klasifikasi objek

13.Menjalankan program untuk menampilkan list nomor parkir yang kosong

4.8.4 Hasil Pengujian

Hasil dari pengujian ini adalah mengetahui bahwa program telah mampu

membedakan tempat yang kosong dan tempat yang terdapat mobil. Berikut adalah

gambar hasil identifikasi benda.


(72)

Tabel 4.2 Hasil Identifikasi Benda

Kondisi Area Total

white pixel Total pixel Persentase (hasil) Status Area 1 1787 1634 1631 1609 1615 42411 42411 42411 42411 42411 0,042171 0,038550 0,038463 0,037916 0,038074 Kosong Kosong Kosong Kosong Kosong Area 2 2002 1926 1906 1897 1906 39396 39396 39396 39396 39396 0,050823 0,048801 0,043827 0,048198 0,043834 Kosong Kosong Kosong Kosong Kosong Area 3 1546 1532 1498 1484 1528 39396 39396 39396 39396 39396 0,039265 0,038812 0,380289 0,037734 0,038767 Kosong Kosong Kosong Kosong Kosong Area 1 28715 28649 28408 28588 28689 42411 42411 42411 42411 42411 0,677132 0,675545 0,669874 0,67412 0,676433 Terisi Terisi Terisi Terisi Terisi Area 2 3123 3022 3022 3032 3068 39396 39396 39396 39396 39396 0,079276 0,076701 0,076701 0,076977 0,077834 Kosong Kosong Kosong Kosong Kosong Area 3 1694 1620 1615 1652 1677 39396 39396 39396 39396 39396 0,042921 0,041134 0,040956 0,041978 0,042654 Kosong Kosong Kosong Kosong Kosong


(73)

66 Area 1 18831 18379 18330 18270 18161 42411 42411 42411 42411 42411 0,444018 0,433571 0,432245 0,430898 0,428212 Terisi Terisi Terisi Terisi terisi Area 2 31560 30221 30145 29713 29467 39396 39396 39396 39396 39396 0,801135 0,767121 0,765155 0,754276 0,747963 Terisi Terisi Terisi Terisi Terisi Area 3 2339 2253 2189 2223 2192 39396 39396 39396 39396 39396 0,056414 0,05567 0,056658 0,056341 0,057122 Kosong Kosong Kosong Kosong Kosong Area 1 18638 18077 17982 17869 17801 42411 42411 42411 42411 42411 0,439461 0,426234 0,423994 0,421329 0,419726 Terisi Terisi Terisi Terisi Terisi Area 2 7226 6941 6893 6928 6948 39396 39396 39396 39396 39396 0,18342 0,176185 0,174967 0,175855 0,176363 Kosong Kosong Kosong Kosong Kosong Area 3 22608 22582 22421 22328 23745 39396 39396 39396 39396 39396 0,573865 0,573205 0,569119 0,566758 0,602726 Terisi Terisi Terisi Terisi Terisi


(74)

Area 1 1921 1949 1924 1898 1833 42411 42411 42411 42411 42411 0,0452949 0,0459551 0,0453656 0,0447525 0,0457429 Kosong Kosong Kosong Kosong Kosong Area 2 20172 20298 20313 20347 20290 39396 39396 39396 39396 39396 0,512032 0,51523 0,515611 0,516474 0,515027 Terisi Terisi Terisi Terisi Terisi Area 3 1824 1815 1864 1871 1864 39396 39396 39396 39396 39396 0,0462737 0,0460707 0,0473144 0,0474921 0,0473144 Kosong Kosong Kosong Kosong Kosong Area 1 1858 1797 1780 1793 1726 42411 42411 42411 42411 42411 0,0438094 0,0423711 0,0419702 0,0422768 0,040697 Kosong Kosong Kosong Kosong Kosong Area 2 23903 23514 23313 23421 23458 39396 39396 39396 39396 39396 0,606737 0,596863 0,591761 0,594756 0,595441 Terisi Terisi Terisi Terisi Terisi Area 3 19821 19173 18958 18964 19036 39396 39396 39396 39396 39396 0,503122 0,486674 0,481216 0,481369 0,483196 Terisi Terisi Terisi Terisi Terisi


(75)

68 Area 1 1970 1849 1804 1784 1773 42411 42411 42411 42411 42411 0,0464502 0,0435972 0,0425361 0,0420646 0,0418052 Kosong Kosong Kosong Kosong Kosong Area 2 4980 4686 4664 4578 4608 39396 39396 39396 39396 39396 0,126409 0,118946 0,118388 0,116205 0,116966 Kosong Kosong Kosong Kosong Kosong Area 3 21392 20541 20031 19902 19705 39396 39396 39396 39396 39396 0,542999 0,519114 0,508453 0,505178 0,500178 Terisi Terisi Terisi Terisi Terisi Area 1 19174 18865 18911 18897 18794 42411 42411 42411 42411 42411 0,4521 0,444814 0,445898 0,445568 0,44314 Terisi Terisi Terisi Terisi Terisi Area 2 20243 19768 19558 19512 19440 39396 39396 39396 39396 39396 0,513834 0,501777 0,496446 0,495279 0,493451 Terisi Terisi Terisi Terisi Terisi Area 3 21319 20664 20338 20314 20295 39396 39396 39396 39396 39396 0,541146 0,52452 0,516245 0,515636 0,510382 Terisi Terisi Terisi Terisi Terisi


(76)

Area 1 18994 18881 18901 18911 18866 42411 42411 42411 42411 42411 0,447856 0,445191 0,445663 0,445898 0,444837 Terisi Terisi Terisi Terisi Terisi Area 2 20188 19344 19371 19610 19441 39396 39396 39396 39396 39396 0,512438 0,491014 0,4917 0,497766 0,492715 Terisi Terisi Terisi Terisi Terisi Area 3 8983 6684 6581 6678 6432 39396 39396 39396 39396 39396 0,228018 0,169662 0,167047 0,16951 0,163265 Kosong Kosong Kosong Kosong Kosong Area 1 1836 1804 1877 1856 1839 42411 42411 42411 42411 42411 0,0432907 0,0425361 0,0442574 0,0437622 0,0433614 Kosong Kosong Kosong Kosong Kosong Area 2 22395 22263 1839 22735 22678 39396 39396 39396 39396 39396 0,568459 0,565108 0,56554 0,577089 0,575642 Terisi Terisi Terisi Terisi Terisi Area 3 9499 9473 9500 9499 9473 39396 39396 39396 39396 39396 0,241116 0,240456 0,241141 0,241116 0,240456 Kosong Kosong Kosong Kosong Kosong


(77)

70

Pada Tabel 4.2 merupakan hasil pengujian yang dilakukan dengan

berbagai kondisi parkir. Pada tabel tersebut terdapat area, nilai total white pixel ,

nilai total pixel, nilai presentase (hasil) dan status. Untuk penjelasan yang

dimaksud area di Tabel 4.2 adalah hasil akhir citra masing-masing area (slot

tempat parkir) yang diperoleh dari proses Background Subtraction yang telah

dikonversi ke grayscale dan biner. Sedangkan yang dimaksud total white pixel

merupakan nilai hasil penghitungan jumlah keseluruhan pixel berwarna putih pada

masing-masing area. Untuk penjelasan total pixel adalah jumlah pixel secara

keseluruhan pada masing-masing area. Sedangkan yang dimaksud nilai presentase

(hasil) adalah hasil pembagian total white pixel dengan total pixel. Pada tabel

tersebut juga terdapat status slot parkir tersebut kosong atau terisi dari hasil

perhitungannya.

Pada sistem ini telah ditentukan batas minimal presentase warna pixel putih

adalah 35% dari nilai total pixel keseluruhan. Nilai 35% sebagai batas minimal

presentase warna pixel putih didapatkan dari hasil beberapa kali pengujian

(pengujian untuk mendapatkan hasil yang akurat). Sehingga apabila pada area

tersebut terdapat objek yang mempunyai presentase pixel putih 35% atau lebih

maka area tersebut dinyatakan terdapat mobil. Sebaliknya apabila presentase pixel

putih dibawah 35% maka dinyatakan area tersebut masih kosong.

Pada Tabel 4.2 terlihat bahwa ketika proses update citra dan ketika ada

benda lain atau manusia yang berada di tempat parkir yang kosong (pada 2

kondisi citra yang terakhir pada Tabel 4.2 ) maka tidak dianggap mobil dan tetap


(1)

Gambar 4.22 Hasil Pendeteksi Kosong Nomor 1 dan 3

Pada Gambar 4.22 ketika sistem diberi kondisi slot/tempat parkir kosong pada nomor 1 dan 3 (seperti ditunjukkan panah warna merah) maka sistem akan mendeteksi dan menampilkan nomor parkir yang statusnya kosong adalah 1 dan 3 (seperti ditunjukkan panah warna kuning).

kondisi parkir tampilan output


(2)

81

Gambar 4.23 Hasil Pendeteksi Benda Selain Mobil

Pada Gambar 4.23 ketika sistem diberi kondisi slot/tempat parkir kosong semua dan diletakkan benda lain pada slot nomor 2 yang dimisalkan manusia berdiri di slot tersebut (seperti ditunjukkan panah warna merah) maka sistem akan tetap mendeteksi slot yang terdapat manusia sebagai slot yang kosong dan menampilkan nomor parkir yang statusnya kosong adalah 1,2 dan 3 (seperti ditunjukkan panah warna kuning).

Dari hasil-hasil pengujian seperti pada Gambar 4.15 sampai dengan Gambar 4.23 , input perubahan kondisi parkir dari yang kondisi kosong, penuh, berbagai kombinasi posisi mobil dan ketika terdapat benda selain mobil program telah mampu mendeteksi sesuai kondisi.

kondisi parkir tampilan output


(3)

82

Berdasarkan pengujian yang telah dilakukan terhadap sistem, maka dapat diambil kesimpulan dan saran-saran dari hasil yang telah diperoleh.

5.1. Kesimpulan

Adapun kesimpulan yang dapat dituliskan dari hasil sistem yang telah dibuat antara lain sebagai berikut:

1. Program dapat membedakan tempat yang kosong dan yang terisi penuh. Selain itu ketika diberi kondisi gangguan seperti terdapat orang berdiri di tempat parkir yang kosong maupun ketika baru ada mobil keluar dari tempat kosong tersebut maka program tetap menganggap tempat tersebut kosong. Untuk sistem ini ditentukan batas minimal presentase pixel putih sebesar 35% yang didapatkan dari beberapa pengujian (pengujian untuk mendapatkan hasil yang akurat).

2. Metode Background Subtraction dapat diimplementasikan pada pendeteksian tempat parkir yang kosong menggunakan kamera. Setelah dilakukan 150 kali percobaan didapatkan hasil 150 data sudah benar dan sesuai.


(4)

83

5.2. Saran

Saran yang dapat diberikan untuk mengembangkan sistem ini sebagai berikut:

1. Dalam pengambilan citra sampel maupun citra update, disarankan untuk mencoba konsep panorama sehingga citra yang terambil bisa lebih banyak dan dapat menghemat jumlah kamera yang dibutuhkan.

2. Posisi kamera sebaiknya dibuatkan rel atau lintasan sehingga kamera dapat mengambil gambar dengan berjalan dari ujung satu ke ujung lainnya untuk mendukung diterapkannya konsep panorama.

3. Sistem ini sebaiknya dikembangkan juga pada tempat parkir motor dan pada tempat parkir outdoor.


(5)

84

//informatika.stei.itb.ac.id, diakses 1 Mei 2012).

Awcock, G.W. 1996. Applied ImageProcessing.Singapore.McGraw-Hill Book. Budiarso , DW. 2010. Sistem Pendeteksi Aktivitas Kendaraan Pada Area Parkir

Dengan Jaringan Multi-Camera. (pdf), (http: //digilib.its.ac.id/public, diakses 3 Mei 2012).

Bradsky G dan Kaehler A. 2008. Learning OpenCV. U.S.A : O’Reilly Media. Inc. Munir, Rinaldi. 2004.Pengolahan Citra Digital

denganPendekatanAlgoritmik.Bandung :Informatika Bandung

Nixon dan Aguado. 2002. Deteksi Tepi Unsur Pada Citra. Universitas Sumatera Utara.

Saputra, Nata. 2010. Membuat Gambar Menjadi Grayscale (VB net). (online), (http:// http://natathecool.com/2010/05/membuat-gambar-menjadi-grayscale-vb-net.html, diakses 2 Mei 2012).

Saphiro L dan Sthockman G. 2000. Computer Vision. The University Of Washington.

Taylor dan Francis. 2007. Color Image Processing Method And Application. Boca Raton : CRC Press.

Umbaugh, Scoot. 1998. Computer Vision and Image Processing. U.S.A : Prentice Hall, Inc.


(6)

85

Wijaya, MC. 2009. Mencari Nilai Threshold Yang Tepat Untuk Perancangan Pendeteksi Kanker Trofoblas. (pdf),(http : //

journal.uii.ac.id/index.php/Snati/article/view/1176/1002, diakses 1 Mei 2012).