• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI. yaitu penelitian yang dilakukan oleh Daigavane(2010) yang berjudul Real Time

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II LANDASAN TEORI. yaitu penelitian yang dilakukan oleh Daigavane(2010) yang berjudul Real Time"

Copied!
28
0
0

Teks penuh

(1)

2.1 Tinjauan Pustaka

Terdapat beberapa penelitian dengan tema yang terkait pada Skripsi ini yaitu penelitian yang dilakukan oleh Daigavane(2010) yang berjudul “Real Time Vehicle Detection and Counting Method for Unsupervised Traffic Video on Highways ” tentang penghitung dan klasifikasi kendaraan menggunakan metode median untuk proses filtering, penelitian yang dilakukan oleh Daigavane menggunakan input video secara real time,namun belum bisa input video secara offline.

Penelitian selanjutnya dilakukan oleh Haryanto(2015) yang berjudul “Klasifikasi Jenis Kendaraan Bergerak Berbasis Geometric Invariant Moment ”. Dalam penelitian Zamroji Hariyanto ini menggunakan Geometric Invariant Moment dari objek citra kendaraan untuk mengklasifikasikan dan menghitung kendaraan dengan tingkat keberhasilan rata-rata pada waktu pagi hari adalah 90,45% dan siang hari 94,27% namun menggunakan bahasa C# di dalam perangkat lunak yang di bangun.

Selanjutnya penelitian yang dilakukan oleh Uddin(2016) yang berjudul “Moving Object Detection Based on Background Subtraction & Frame Differencing Technique” tentang deteksi gerak kendaraan dan dilakukan dengan

(2)

2.2 Intelligent Transportation System

Saat sistem transportasi di seluruh dunia mulai dirasa meningkatkan peluang tingkat ekonomi dan sosial, hal tersebut juga menimbulkan berbagai masalah seperti kemacetan, keamanan, dan kerusakan lingkungan. Intelligent Transportation System (ITS) adalah aplikasi dari teknologi informasi dan komunikasi dalam sistem transportasi. Intelligent Transportation System (ITS) digunakan untuk meningkatkan mobilitas, mengurangi angka kecelakaan dan kematian, serta melestarikan lingkungan.Sasaran dari Intelligent Transportation System (ITS) ini sendiri meliputi:

1. Memantau lalu lintas dan kondisi lingkungan di jalan

2. Memaksimalkan keamanan operasional dan efisiensi dari jaringan

3. Meminimalisir dampak negatif yang disebabkan dari kemacetan yang sering terjadi maupun kemacetan yang tidak sering terjadi akibat insiden tertentu

4. Menyediakan pengguna jalan informasi yang dibutuhkan untuk membantu pengambilan keputusan di perjalanan dan meringankan beban mental dan stress ketika berkendara.

Tujuan tersebut dapat dicapai apabila komponen berikut diidentifikasi sebagai fungsi utama, yaitu:

(3)

a. Maintaining road serviceability and safety, b. Traffic control

c. Travel aid and user information d. Demand management

e. Network monitoring.

2.3 Computer Vision

Computer vision adalah sebuah disiplin ilmu yang mempelajari bagaimana merekonstruksi, mengintrepretasikan, dan memahami sebuah tampilan 3 dimensi dari tampilan 2 dimensinya dalam hal sifat dari struktur tampilan tersebut. Computer Vision berkaitan dengan pemodelan dan meniru penglihatan manusia dengan menggunakan perangkat lunak dan perangkat keras pada komputer. Computer Vision menggabungkan ilmu pengetahuan dalam bidang ilmu komputer, teknik elektro, matematika, fisiologi, biologi, dan ilmu kognitif. Diperlukan ilmu dari semua bidang tersebut untuk memahami dan menyimulasikan pengoperasian penglihatan manusia.

Perlunya metode untuk mendekati kemampuan manusia dalam menangkap informasi, sebuah teknologi Computer Vision harus terdiri dari banyak fungsi pendukung yang berfungsi secara penuh. Fungsi-fungsi pendukung tersebut antara lain:

(4)

2.3.1 Proses penangkapan citra atau gambar (image acquisition)

Image Acquisition pada manusia dimulai dari mata, kemudian informasi visual diterjemahkan ke dalam suatu format yang kemudian dapat dimanipulasi oleh otak. Seperti halnya proses tersebut, Computer Vision membutuhkan sebuah mata untuk menangkap sebuah sinyal visual. Kamera akan menerjemahkan sebuah scene atau image. Keluaran dari kamera berupa sinyal analog, dimana frekuensi dan amplitudonya merepretasikan detail ketajaman (brightness) pada scene (frekuensi berhubungan dengan jumlah sinyal dalam satu detik, sedangkan amplitudo berkaitan dengan tingginya sinyal listrik yang dihasilkan).

Kamera mengamati sebuah kejadian pada satu jalur dalam satu waktu, memindainya dan membaginya menjadi ratusan garis horizontal yang sama. Tiap-tiap garis membuat sinyal analog yang amplitudo menjelaskan perubahan brightness sepanjang garis sinyal tersebut. Komputer tidaklah bekerja dengan sinyal analog, oleh karena itu diperlukan Analog to Digital Converter (ADC), dibutuhkan untuk memproses semua sinyal tersebut oleh komputer. ADC ini akan mengubah sinyal analog yang direpresentasikan dalam bentuk informasi sinyal tunggal ke dalam sebuah aliran (stream) sejumlah bilangan biner.

(5)

Bilangan biner ini kemudian disimpan di dalam memori dan akan menjadi data raw yang akan diproses.

2.3.2 Proses pengolahan citra (image processing)

Pada proses ini Computer Vision akan melibatkan sejumlah manipulasi utama (initial manipulation) dari data binary yang dihasilkan pada proses image acquisition. Image Processing membantu peningkatan dan perbaikan kualitas image, sehingga dapat dianalisa dan diolah lebih jauh secara efisien. Image processing akan meningkatkan perbandingan sinyal terhadap noise, rumus dari signal to ratio ditunjukkan pada persamaan 2.1.

Signal to noise ratio = 𝑆

𝑁 ………...(1.1)

Keterangan :

Signal to noise ratio = Daya derau(dB)

S = Kekuatan sinyal

N = Kekuatan derau(noise)

Sinyal-sinyal tersebut adalah informasi yang akan merepresentasikan objek yang ada dalam image, sedangkan noise adalah segala bentuk interferensi dan pengaburan yang terjadi pada sebuah objek.

(6)

2.3.3 Analisa data citra (Image Analysis)

Pada tahap ini, scene akan dieksplorasi ke dalam bentuk karakteristik utama dari objek melalui suatu proses investigasi. Sebuah program komputer akan mulai melihat melalui bilangan biner yang merepresentasikan informasi visual untuk mengidentifikasikan fitur-fitur spesifik dan karakteristiknya. Pada proses yang lebih khusus lagi, program image analysis digunakan untuk mencari tepian batas-batas objek dalam image. Sebuah tepian (edge) terbentuk antara objek dan latar belakangnya atau antara dua objek yang spesifik. Tepi ini akan terdeteksi sebagai akibat dari perbedaan level brightness pada sisi yang berbeda dengan salah satu batasnya.

2.3.4 Proses pemahaman data citra (Image Understanding)

Proses ini merupakan langkah terakhir dalam proses Computer Vision, dimana spesifik objek dan hubungannya diidentifikasi. Pada bagian ini akan melibatkan kajian tentang teknik-teknik artificial intelligent. Understanding berkaitan dengan template matching yang ada dalam sebuah scene. Metode ini menggunakan program pencarian (search program) dan teknik penyesuaian pola (pattern matching techniques).

(7)

2.4 Definisi Citra Digital

Dalam buku Digital Image Processing yang ditulis oleh Rafael C. Gonzalez dan Richard E. Woods, menjelaskan bahwa citra digital merupakan fungsi dua dimensi yang dapat dinyatakan dengan fungsi f(x,y), dimana x dan y merupakan titik koordinat spasial. Sedangkan amplitudo dari fungsi f pada sembarang koordinat (x,y) merupakan nilai intensitas cahaya, yang merupakan representasi dari warna cahaya yang ada pada citra analog. Citra digital adalah suatu citra dimana (x,y) dan nilai intensitas dari f terbatas (discrete quantities), dan telah dilakukan proses digitalisasi spasial dan digitalisisi kuantitas.

Citra digital merupakan representatif dari citra yang diambil oleh mesin dengan bentuk pendekatan berdasarkan sampling dan kuantisasi. Sampling menyatakan besarnya kotak-kotak yang disusun dalam baris dan kolom atau dengan kata lain sampling pada citra menyatakan besar kecilnya ukuran piksel (titik) pada citra, dan kuantisasi menyatakan besarnya nilai tingkat kecerahan yang dinyatakan dalam nilai tingkat keabuan (grayscale) sesuai dengan jumlah bit biner yang digunakan oleh mesin atau dengan kata lain kuantisasi pada citra menyatakan jumlah warna yang ada pada citra .

Sebuah citra digital dapat diwakili oleh sebuah matriks yang terdiri dari M kolom dan N baris, dimana perpotongan antara kolom dan baris disebut piksel (piksel = picture element), yaitu elemen terkecil dalam sebuah citra.

(8)

𝑓(𝑥, 𝑦) = [ 𝑓(0,0) 𝑓(0,1) … 𝑓(1,0) 𝑓(1,1) … ⋮ 𝑓(𝑀 − 1,0) ⋮ 𝑓(𝑀 − 1,1) ⋮ … 𝑓(0, 𝑁 − 1) 𝑓(1, 𝑁 − 1) ⋮ 𝑓(𝑀 − 1, 𝑁 − 1) ] ...(2.1)

Proses sampling citra analog ke citra digital ditampilkan pada Gambar 2.1.

Gambar 2.1 Proses sampling citra dari citra analog ke citra digital. (sumber: “Invariant Image Recognition by Zernike Moments” )

Piksel mempunyai dua parameter, yaitu koordinat dan intensitas atau warna. Nilai yang terdapat pada koordinat (x,y) adalah f(x,y), yaitu besar intensitas atau warna dari piksel di titik itu. Oleh sebab itu, sebuah citra digital dapat ditulis dalam bentuk matriks di atas.

Berdasarkan Gambar 2.1, secara sistematis citra digital dapat dituliskan sebagai fungsi intensitas f(x,y), dimana harga x (baris) dan y (kolom) merupakan koordinat posisi dan f(x,y) adalah nilai fungsi pada setiap titik (x,y) yang menyatakan besar intensitas citra atau tingkat keabuan atau warna dari piksel di

(9)

titik tersebut. Pada proses digitalisasi (sampling dan kuantitas) diperoleh besar baris M dan kolom N hingga citra membentuk matriks M x N dan jumlah tingkat keabuan piksel G. Jenis-jenis citra digital:

1. Citra Biner (Monokrom)

Banyaknya warna hanya dua, yaitu hitam dan putih. Dibutuhkan 1 bit di memori untuk menyimpan kedua warna ini.

2. Citra Grayscale

Banyaknya warna tergantung pada jumlah bit yang disediakan di memori untuk menampung kebutuhan warna ini. Semakin besar jumlah bit warna yang disediakan di memori, semakin halus gradasi warna yang terbentuk. 3. Citra Warna (True Color)

Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi dari tiga warna dasar yaitu merah, hijau dan biru. Setiap warna dasar menggunakan penyimpanan 1 byte (8 bit), yang berarti setiap warna mempunyai kombinasi sebanyak 16 juta warna lebih. Itulah sebabnya format ini dinamakan true color karena mempunyai jumlah warna yang cukup besar sehingga bisa dikatakan hampir mencakup semua warna di alam. Satu piksel citra true color diwakili oleh 3 byte, dimana masing-masing byte mempresentasikan warna merah, hijau dan biru.

(10)

2.5 Pengolahan Citra Digital (Digital Image Processing )

Pengolahan citra atau disebut juga image processing merupakan suatu bentuk pengolahan atau pemrosesan sinyal dengan masukan berupa gambar (image) dan ditransformasikan menjadi gambar lain sebagai keluarannya dengan menggunakan teknik-teknik tertentu.

Pengolahan citra digital adalah suatu disiplin ilmu yang mempelajari hal-hal yang berkaitan dengan perbaikan kualitas gambar (peningkatan kontras, transformasi warna, restorasi citra), transformasi gambar (rotasi, translasi, skala, transformasi geometrik), melakukan pemilihan citra ciri (featur images) yang optimal untuk tujuan analisis, melakukan proses penarilkan informasi atau deskripsi objek atau pengenalan objek yang terkandung pada citra, melakukan kompresi atau reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data. Input dari pengolahan citra adalah citra, sedangkan Output-nya adalah citra hasil pengolahan (Sutoyo, 2009). Adapun tujuan dari pengolahan citra digital diantaranya adalah sebagai berikut :

1. Memperbaiki kualitas citra atau gambar dilihat dari ospek radiometrik (peningkatan kontras, transformasi warna, restorasi citra) dan dari aspek geometrik (rotasi, translasi, skala, transformasi geometrik).

(11)

2. Melakukan proses penarikan informasi atau deskripsi objek atau pengenalan objek yang terkandung dalam citra.

3. Melakukan kompresi atau reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data.

2.6 Threshold

Threshold adalah metode menetapkan suatu nilai, kemudian hanya mengambil nilai di atasnya saja atau dibawahnya saja, sedangkan nilai selainnya diabaikan (Bradski dan Kaehler, 2008). Hasil dari threshold adalah citra yang tampak nyata perbedaan intensitasnya, biasanya hitam dan putih. Metode ini biasanya digunakan untuk segmentasi atau pemisahan suatu objek dengan selainnya. Untuk melakukan penghitungan pixel putih pada masing-masing region, maka data citra ditransformasi ke dalam citra biner dengan memanfaatkan threshold. Thresholdi 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

(12)

melebihi batas yang ditentukan akan dibuat menjadi 1 atau putih dan jika dibawah batas yang ditentukan maka akan dibuat menjadi 0 atau hitam.Berdasarkan nilai ambang (threshold) T dapat ditunjukkan seperti pada persamaan 2.2.

𝑓(𝑥, 𝑦) = {1 , 𝑓(𝑥, 𝑦) > 𝑇

0, 𝑓(𝑥, 𝑦) ≤ 𝑇 ...(2.2) Operasi pengambangan mentransformasikan citra hitam-putih ke citra biner. Dengan kata lain, nilai intensitas pixel semula dipetakan ke dua nilai saja yaitu hitam dan putih.

2.7 OpenCV

OpenCV adalah sebuah library yang berisi fungsi-fungsi pemrograman untuk teknologi Computer Visions,OpenCV bersifat open source, bebas digunakan untuk hal-hal yang bersifat akademis maupun komersial.Di dalam OpenCV, terdapat interface untuk bahasa pemrograman C, C++, Python, dan Java yang nantinya dapat berjalan pada Windows, Linux, Android dan Mac.Khusus untuk C# dan VB.NET dengan platform .NET menggunakan EmguCV sebagai wrapper untuk memanggil fungsi library OpenCV ,Terdapat lebih dari 2500 algoritme dalam OpenCV yang digunakan di seluruh dunia, telah lebih dari 2.5 juta kali diunduh, dan digunakan lebih dari 40 ribu orang. Penggunaanya antara lain pada seni interaktif, inspeksi tambang, menampilkan peta di web melalui teknologi robotik.

(13)

Pada awalnya OpenCV ditulis dengan menggunakan bahasa C namun sekarang secara menyeluruh sudah menggunakan antarmuka bahasa C++ dan seluruh pengembangannya terdapat dalam format bahasa C++. Contoh aplikasi dari OpenCV yaitu interaksi manusia dengan komputer: identifikasi, segmentasi, pengenalan objek, pengenalan wajah, pengenalan gerakan, penelusuran gerakan, gerakan diri, dan pemahaman gerakan, struktur dari gerakan, kalibrasi stereo dan beberapa kamera serta komputasi mendalam, dan robotik.

Fitur-fitur yang terdapat pada OpenCV antara lain:

1. Manipulasi data image (alokasi, rilis, duplikasi, pengaturan, konversi) 2. Image dan I/O video (masukan berbasis file dan kamera, keluaran

image/video file),

3. Manipulasi matriks dan vektor serta aljabar linear (produk, solusi, eigenvalues, SVD)

4. Beragam struktur data dinamis (daftar, baris, grafik)

5. Dasar pengolahan citra (filter, deteksi tepi, deteksi sudut, pengambilan sampel, dan interpolasi, konversi warna, operasi morfologi, histogram) 6. Analisis struktur (komponen yang berhubungan, pengolah kontur,

transformasi jarak, variasi momen, transformasi Hough, perkiraan polygonal, penyesuaian garis, Delaunay triangulation)

(14)

7. Kalibrasi kamera (menemukan dan menelusuri pola kalibrasi, dasar estimasi matriks, estimasi homografi, korespondensi stereo)

8. Analisis gerakan (otical flow,segmentasi gerakan, penelusuran) 9. Pengenalan objek (metode eigen, HMM)

10. Dasar Graphical User Interface atau GUI (menampilkan image/video, penanganan mouse dan keyboard, scroll-bars)

11. Pelabelan image (garis,poligon,gambar teks)

Modul-modul terdapat pada OpenCV antara lain : 1. Cv-fungsi utama opencv

2. Cvaux-fungsi penolong opencv

3. Cxcore-pendukung struktur data dan aljabar linear 4. Highui-fungsi Graphical User Interface (GUI)

2.8 Background Subtraction

Background subtraction banyak digunakan pada proyek-proyek berbasis pengolah citra. Salah satu aplikasi yang sering menggunakan fungsi dari background substraction ini adalah aplikasi penghitung jumlah pengunjung yang memasuki maupun meninggalkan ruangan ataupun kendaraan yang melewati suatu jalur dalam sistem informasi lalu lintas. Metode ini memisahkan manusia

(15)

atau kendaraan dengan cara pembedaan latar belakang (background) dan manusia atau kendaraan (foreground) yang bergerak.

Jika kondisi yang akan diamati oleh background subtraction hanya berupa latar belakang dan objek bergerak yang akan diamati, hal tersebut sangat mudah. Namun, ketika terdapat objek lain yang juga berpindah dari titik satu ke titik yang lain misalnya bayangan dari objek tersebut hal ini akan diproses juga sebagai foreground atau masuk ke dalam objek yang diklasifikasikan. Background

Subtraction pada OpenCV memiliki tiga algoritme yang sering

diimplementasikan, diantaranya:

1. Background Subtractor MOG

Algoritme ini menggunakan metode Gaussian Mixture berdasarkan pemisahan latar belakang objek dan objek yang akan diproses. Algoritme ini pertama kali diperkenalkan lewat sebuah paper berjudul “Animproved adaptive background mixture model for real-time tracking with shadow detection” oleh P. Kadew TraKupong dan R. Bowden ditahun 2001.

Metode yang digunakan adalah memodelkan setiap pixel background oleh campuran distribusi K Gaussian. Dengan nilai K berkisar dari 3 sampai 5. Nilai K diambil dari campuran warna yang ada di setiap waktu atau scene. Perbedaan warna akan semakin besar ketika terdapat

(16)

dua indikator yaitu indikator terlalu sedikit bergerak atau bahkan tidak bergerak sama sekali dengan indikator yang selalu bergerak.

2. Background Subtractor MOG 2

Sama seperti halnya Background Subtractor MOG, Background Subtractor MOG 2 juga berdasarkan pemisahan latar belakang objek dan objek yang akan diproses. Algoritme ini diambil dari dua paper yaitu “Improved adaptive Gaussian mixture model for background Subtraction” di tahun 2004 dan “Efficient adaptive density estimation per image pixel for the task of background subtractor” di tahun 2006, Kedua paper itu ditulis Z. Zivkovic. Salah satu hal atau fitur yang penting disini adalah bagaimana setiap warna pixel memiliki nilai distribusi Gaussian, berbeda dengan Background Subtractor MOG yang memilih nilai distribusi berdasarkan nilai k. Hal tersebut membuat Background Subtractor MOG 2 lebih adaptif pada kondisi perubahan pencahayaan atau iluminasi.

3. Background Subtractor GMG

Algoritme Background Subtractor GMG menggabungkan estimasi stastik latar belakang dan segmentasi Bayesian per piksel. Algoritme ini pertama kali diperkenalkan oleh Andrew B. Godbehere,Akihiro

(17)

Matsukawa, Ken Goldberg pada paper mereka yang berjudul “Visual Tracking of human visitors Under variable-light conditions for a responsive audio art installation” pada tahun 2012.

Algoritme ini memungkinkan segmentasi foreground yang akan mengidentifikasi foreground pada kondisi yang lebih kompleks atau lebih sulit membedakan latar belakang dan foreground-nya melalui inferensi Bayesian. Estimasi dapat adaptif juga, pengamatan atau pendeteksian yang baru akan lebih observatif dibanding pengamatan atau pendeteksian yang sebelumnya. Selain hal tersebut, Background Subtractor GMG juga dapat menghilangkan noise atau gangguan seperti bayangan dari objek yang bergerak.

2.9 Gaussian smoothing

Gaussian smoothing atau biasa juga disebut Gaussian blur adalah hasil dari pengaburan sebuah citra dengan menggunakan fungsi Gaussian. Secara matematis, mengaplikasikan sebuah Gaussian smoothing ke sebuah citra samasaja dengan menyelimuti citra dengan sebuah fungsi Gaussian. Aplikasi tersebut akan mengurangi komponen citra yang mempunyai frekuensi tinggi karena Gaussian smoothing merupakan filter low pass. Persamaan dari fungsi Gaussian dalam satu dimensi yaitu.

(18)

𝐺 (𝑥) = 1 √2𝜋𝜎2𝑒

(− 𝑥2

2𝜎2) ...(2.2)

sedangkan pada dua dimensi yaitu 𝐺 (𝑥) = 1

2𝜋𝜎2𝑒

(− (𝑥2 + 𝑦2)

2𝜎2 ) ...(2.3)

X adalah jarak dari asal sumbu horizontal, y adalah jarak dari asal sumbu vertikal, dan adalah deviasi standar dari distribusi Gaussian. Ketika diaplikasikan dalam dua dimensi, persamaan ini menghasilkan kontur permukaan berupa lingkaran konsentris dengan distribusi Gaussian dari titik pusat. Nilai dari distribusi ini digunakan untuk membangun sebuah matriks konvolusi yang diterapkan pada citra asli. Nilai baru setiap pixel diset pada nilai rata-rata dari daerah sekitarnya. Nilai pixel asli menerima nilai yang paling tinggi sedangkan pixel di sekitarnya menerima nilai yang lebih kecil di mana semakin dekat dengan pixel asli maka nilainya akan semakin mendekati. Hal inilah yang mengakibatkan timbulnya sebuah blur yang menjaga batas-batas dan edge yang baik.

Contoh, Misalkan citra f(x,y) yang berukuran 5x5 dan sebuah kernel atau mask yang berukuran 3x3 masing-masing adalah sebagai berikut:

𝑓(𝑥, 𝑦) = [ 4 4 3 5 4 6 6 5 5 2 5 6 2 6 7 5 6 6 2 5 5 3 2 4 4] dan 𝑔(𝑥, 𝑦) = [ 0 −1 0 −1 0.4 −1 0 −1 0 ]

(19)

Operasi konvolusi antara citra f(x,y) dengan kernel g(x,y), yaitu f(x,y) * g(x,y) dapat diilustrasikan sebagai berikut:

1. Tempatkan kernel pada sudut kiri atas, kemudian hitung nilai piksel pada posisi (0,0) dari kernel.

Hasil konvolusi = 3. Nilai ini dihitung dengan cara berikut:

(0x4) + (-1x4) + (0x3) + (-1x6) + (4x6) + (-1x5) + (0x5) + (-1x6) + (0x6) = 3

2.

Geser kernel satu piksel ke kanan, kemudian hitung nilai piksel pada posisi (0,0) dari kernel:

Hasil konvolusi = 0. Nilai ini dihitung dengan cara berikut: (0x4) + (-1x3) + (0x5) + (-1x6) + (4x5) + (-1x5) + (0x6) + (-1x6) + (0x6) = 0 3 4 4 3 5 4 6 6 5 5 2 5 6 6 6 2 6 7 5 5 3 3 5 2 4 4 4 4 3 5 4 6 6 5 5 2 5 6 6 6 2 6 7 5 5 3 3 5 2 4 4 3 0

(20)

3.

Geser kernel satu piksel ke kanan, kemudian hitung nilai piksel pada posisi (0,0) dari

kernel:

Hasil konvolusi = 2. Nilai ini dihitung dengan cara berikut: (0x3) + (-1x5) + (0x4) + (-1x5) + (4x5) + (-1x2) + (0x6) + (-1x6) + (0x2) = 2

Dengan cara yang sama, piksel-piksel pada baris kedua dan ketiga di konvolusi sehingga menghasilkan:

3 0 2

0 2 6

6 0 2

Jika hasil konvolusi menghasilkan nilai piksel negative, nilai tersebut dijadikan 0. Sebaliknya jika hasil konvolusi menghasilkan nilai piksel lebih besar dari nilai keabuan maksimum (255), nilai tersebut dijadikan ke nilai keabuan maksimum. 4 4 3 5 4 6 6 5 5 2 5 6 6 6 2 6 7 5 5 3 3 5 2 4 4 3 0 2

(21)

Contoh implementasi matriks kernel Gaussian Blur 5x5 yang memilki efek seperti pada Gambar 2.2.

Gambar 2.2 Hasil Citra Kernel Gaussian Blur 5x5

(22)

2.10 Convex Hull

Sebelum definisi convex hull dijelaskan maka diperlu dijelaskan terlebih dahulu definisi convex polygon. Convex polygon adalah sebuah polygon yang tidak memiliki bagian yang cekung (concave). Pada Gambar 2.4 tanda panah menunjuk pada bagian yang cekung dari sebuah polygon. (W. Z Chen, 2011)

Gambar 2.4 Bukan convex polygon

Dalam matematika, terdapat definisi yang tegas mengenai convex polygon.Misalkan bahwa dapat dipilih dua titik yang mana saja dari sebuah polygon (termasuk pada sisi-sisinya dan area yang ditutupi oleh sisi-sisinya) dan dua titik tersebut dihubungkan dengan sebuah garis lurus. Jika semua garis lurus yang dapat dibentuk dari dua titik di dalam polygon tidak melewati batas polygon maka polygon tersebut bisa disebut convex polygon. Gambar 2.5(a) menunjukkan bahwa terdapat dua titik (A dan B) yang dihubungkan dengan sebuah garis lurus. Dapat dilihat dengan jelas bahwa bagian dari garis (yang ditunjukkan dengan warna merah) melewati batas polygon, jadi dapat dikatakan bahwa polygon

(23)

tersebut bukan convex polygon.Contoh convex polygon, semua garis yang terhubung dari dua titik tidak akan pernah melebihi batas polygon terlihat pada Gambar 2.5(b). (W. Z Chen, 2011)

Gambar 2.5 (a) Bukan convex polygon (b) Convex Polygon

Setelah definisi convex polygon diketahui, maka konsep convex hull dapat diketahui. Untuk sekumpulan titik pada sebuah bidang, convex hull dari kumpulan titik tersebut adalah convex polygon terkecil yang mengelilingi semua titik pada kumpulan titik tersebut. Sebagai contoh, pada Gambar 2.6 terdapat 10 titik, segi enam pada gambar tersebut adalah convex hull dari kumpulan titik tersebut. Enam titik yang membentuk segi enam disebut “hull points”. (W. Z Chen, 2011)

(24)

Gambar 2.6 Contoh convex hull

Diketahui bahwa satu himpunan S dalam sebuah bidang atau dalam sebuah ruang adalah convex polygon (atau himpunan convex) jika dan hanya jika titik X dan Y ada di dalam S, garis XY harus berada di dalam S. Titik potong dari kumpulan manasaja dari himpunan convex adalah convex juga, sebagaimana yang ditunjukkan pada Gambar 2.5. Untuk sembarang himpunan W, convex hull dari W adalah titik potong dari semua himpunan convex yang berisi W. Batas dari convex hull adalah sebuah polygon dengan semua titik puncak dalam W. (W. Z Chen, 2011)

Gambar 2.7 Titik potong manasaja dari himpunan convex adalah juga sebuah himpunan convex

(25)

2.11 Blob Detection

Analisis blob ini menggunakan metode connected component, dimana di setiap kumpulan piksel yang tingkat keabuannya bernilai satu, dikategorikan sebagai satu objek. Setiap objek yang terdeteksi akan diberi label untuk mempermudah pengolahan. Dari analisis blob tersebut akan diperoleh informasi tentang centroid, luas area, tinggi, dan lebar sebuah objek dari bentuk rectangle . Dengan (𝑥̅, 𝑦̅) adalah centroid dari objek blob.Centroid dari objek blob (𝑥̅, 𝑦̅) dengan ukuran MxN dapat diperoleh menggunakan persamaan (2.4).

𝑥̅ = ∑ ∑ 𝑥 𝑏(𝑥,𝑦) 𝑁 𝑦=1 𝑀 𝑥=1 ∑𝑀𝑥=1∑𝑁𝑦=1𝑏(𝑥,𝑦) , 𝑦̅ = ∑𝑀𝑥=1∑𝑁𝑦=1𝑥 𝑏(𝑥,𝑦) ∑𝑀𝑥=1∑𝑁𝑦=1𝑏(𝑥,𝑦) ...(2.4)

Pada Gambar 2.8 dapat dilihat representasi citra ukuran 10x10 piksel dan citra dengan nilai piksel 1 yang merupakan representasi dari objek (foreground)

Gambar 2.8 Representasi dari objek (foreground) Sedangkan Gambar 2.9 merupakan blob yang terdeteksi.

(26)

Gambar 2.9 Blob yang terdeteksi

2.12 Microsoft Visual Studio 2015

Microsoft Microsoft Visual Studio 2015 merupakan aplikasi yang digunakan dalam melakukan development algoritme yang akan digunakan. Pemilihan aplikasi ini karena bahasa pemograman yang akan dipakai adalah VB.NET.Microsoft Visual Studio termasuk perangkat lunak yang relatif umum digunakan untuk pemograman dengan menggunakan bahasa VB.NET. Pada perangkat ini sudah termasuk code editor dan integrated debugger. Untuk membuat program yang dengan menggunakan library dari OpenCV, perlu dilakukan integrasi antara Microsoft Visual Studio dengan OpenCV. Integrasi tersebut dilakukan dengan cara mendefinisikan library yang digunakan ke lokasi data OpenCV yang terdapat pada suatu lokasi di dalam komputer. Dengan menggunakan perangkat lunak ini dapat juga dibuat Graphical user interface dari program yang dibuat. Kekurangan yang dimiliki ini adalah tidak bersifat open

(27)

source, dan harganya relatif cukup mahal. Microsoft menyediakan versi trial dari aplikasi ini untuk digunakan selama 90 hari.

Pemrogramman pada Microsoft Visual Studio memberikan banyak bantuan bagi penggunanya dalam membuat program serta kode-kode yang digunakan untuk menyusun struktur suatu aplikasi,termasuk kode callback yang digunakan pada GUI (Graphical User Interface). VB-File merupakan editor text, latar dasar yang digunakan untuk meletakan fungsi-fungsi callback sebagai pengendali GUI (Graphical User Interface). Callback merupakan bagian-bagian kode data yang dibuat pada VB-File, setiap callback akan diimplementasikan sebagai sebuah subfungsi dalam VB-File. Kemampuan GUI Microsoft Visual Studio tergantung pada fungsi yang dibuat pada VB-File.

GUI (Graphical User Interface) pada Microsoft Visual Studio merupakan perangkat antarmuka yang digunakan untuk memudahkan pengguna dalam mengakses program yang dibuat dengan tampilan yang mudah dipahami dan sederhana. Microsoft Visual Studio dapat digunakan untuk membuat aplikasi pengolahan citra digital.Tampilan dalam GUI dapat disesuaikan dengan keinginan, pengguna tidak diwajibkan mengetahui proses apa saja yang dibentuk, namun dengan hanya menekan tombol yang ada pada GUI, pengguna dapat mengetahui hasil dari pemrosesan yang telah dibuat. Dalam aplikasinya GUI

(28)

dapat terdiri dari beberapa komponen user interface yang saling berinteraksi, sehingga membentuk sebuah program aplikasi.

Microsoft Visual Studio mengimplementasikan GUI sebagai sebuah figure yang terdapat fasilitas uicontrol (control user interface) untuk memrogram masing-masing objek. Contoh tampilan dari Microsoft Microsoft Visual Studio dapat dilihat pada Gambar 2.10.

Gambar 2.10 Tampilan Microsoft Microsoft Visual Studio 2015

Hal dasar yang digunakan untuk membuat aplikasi GUI yaitu mengatur layout komponen GUI dengan uicontrol dan memprogram komponen GUI agar dapat bekerja seperti yang diharapkan.

Gambar

Gambar 2.1 Proses sampling citra dari citra analog ke citra digital.
Gambar 2.2 Hasil Citra Kernel Gaussian Blur 5x5
Gambar 2.4 Bukan convex polygon
Gambar 2.5 (a) Bukan convex polygon (b) Convex Polygon
+5

Referensi

Dokumen terkait

Tujuan yang ingin dicapai dari kegiatan bermain ini adalah anak dapat berkembang dalam 6 aspek perkembangan, yaitu :.. Mencintai dan merawat ciptaan Tuhan

Untuk mendapat masukan akhir dalam penyempurnaan draft KEPMEN tersebut, Forum Reklamasi Hutan Pada Lahan Bekas Tambang (Forum RHLBT) akan mengadakan workshop dengan semua

Delapan artikel mengulas tentang Penangkapan Udang Galah ( Macrobrachium rosenbergii ) menggunakan Rawai Udang di Sungai Siak bagian hilir, Provinsi Riau., Studi pengamatan Plankton

Untuk mengurangi tingkat kecemasan, kepanikan dan Untuk mengurangi tingkat kecemasan, kepanikan dan ketakutan pasien akibat halusinasi, sebaiknya pada

Adanya kontak antar anjing yang terinfeksi rabies dengan anjing sehat dan campur tangan manusia yang memindahkan anjing dari daerah tertular rabies ke daerah bebas rabies,

Pada penelitian ini, hasil uji statistik menggunakan uji Mann Whitney untuk melihat perbedaan pengetahuan siswa tentang buah dan sayur pada kelompok media video

Data spasial merupakan data yang memuat tentang lokasi suatu objek dalam peta berdasarkan posisi geografis objek tersebut dalam bumi dengan menggunakan sistem koordinat..

yang disajikan oleh pemerintah daerah dengan pengawasan dari auditor internal.. Auditor independen yang menilai kualitas LKPD didalam sistem