• Tidak ada hasil yang ditemukan

LANDASAN TEOR

2.4 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.

2.4.1 Gray-Scaling

Proses awal yang banyak dilakukan dalam image processing adalah mengubah citra berwarna menjadi citra gray-scale, hal ini digunakan untukmenyederhanakan 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 gray-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:

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)

2.4.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.3

��, ′= α₁,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 dipetakan ke dua nilai saja: hitam dan putih. Nilai ambang yang dipakai dapat 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).

Gambar 2.1. Citra hasil segementasi (Rahman ,S U et al.2014)

2.4.3 Erosion

Operasi erosi adalah operasi morfologi untuk mengurangi area foreground.Efek dari operasi ini adalah menyusutkan foreground.Foreground berkurang dari tepi luar ke dalam wilayahnya. Jika ada lubang di dalam area foreground, maka lubang akan membesar. Proses ini menggunakan penataan elemen (structuring element) dan hal itu dilakukan dengan operasi konvolusi antara gambar dan structuring element. Operasi ini adalah untuk gambar biner. Proses erosi akan mengatur pixelforeground menjadi background jika ada bagian dari structuring element yang mencapai latar belakang saat tengah structuring element mencapai tepi foreground. Gambar 2.2 memberikan ilustrasi dari proses erosi dengan contoh structuring element 3 x 3.

Gambar 2.2 (a) penataan element dan gambar sebelum operasi; (b) hasiloperasi erosi (Naser dan Nanik, 2013)

2.4.4 Dilation

operasi dilasi adalah operasi kebalikan dari erosi. erosi adalah untuk mengurangi latar depan, sedangkan dilasi untuk memperbesarnya. latar depan membentang dari batas

luarnya. Jika ada lubang di dalam foreground, maka lubang menyusut. Sama seperti erosi, operasi dilasi menggunakan elemen struktural.Elemen struktural digunakan dalam konvolusi dengan gambar.Proses dilasi akan mengatur pixel background untuk menjadi latar depan jika ada bagian dari elemen penataan yang mencapai foreground ketika pusat dari elemen penataan masih di daerah background. Gambar 2.3 memberikan gambaran tentang proses dilasi dengan contoh elemen 3 x 3 penataan.

Gambar 2.3 (a) penataan element dan gambar sebelum operasi; (b) hasil operasi dilasi (Naser dan Nanik , 2013)

2.4.5 Contour

Sebuah kontur adalah kurva untuk fungsi dua variabel bersama yang fungsinya memiliki nilai konstan. Sebuah kontur menggabungkan poin-poin di atas tingkat tertentu dan ketinggian yang sama. Sebuah peta kontur menggambarkan kontur menggunakan garis kontur, yang menunjukkan kecuraman lereng dan lembah dan bukit-bukit.gradien fungsi ini selalu tegak lurus dengan garis kontur. Ketika garis yang berdekatan, besarnya gradien biasanya sangat besar. Kontur –kontur adalah berupa garis lurus atau kurva yang menggambarkan persimpangan satu atau lebih bidang horisontal dengan permukaan nyata atau hipotetis. (Implementation of Hand Detection based Techniques for Human Computer Interaction ,Amiraj Dhawan, Vipul Honrao). Gambar 2.4

Gambar 2.4 Contour(Amiraj dan Vipul, 2013)

2.4.6 Convex-hull

Convex hull digambarkan secara sederhana dalam sebuah bidang sebagai pencarian subset dari himpunan titik pada bidang tersebut, sehingga jika titik-titik tersebut dijadikan poligon maka akan membentuk poligon yang konveks. Suatu poligon dikatakan konveks jika garis yang menghubungkan antar kedua titik dalam poligon tersebut tidak memotong garis batas dari poligon.Convex hull suatu obyek P didefinisikan sebagai area poligon convex terkecil yang melingkupi P. Oleh karena itu, untuk suatu himpunan titik N {p0, p1, p2, . . . , pN}ϵ P, maka dapat dinyatakan bahwa hull H dapat disusun dengan M titik dari himpunan N untuk membuat suatu area konveks poligon minimum.Dari Gambar.2.3 dapat dinyatakan bahwa Convex hull dibuat dengan mengambil sudut interior θ, dari tiga titik yang bersebelahan {p1, p0,

p9}. Jika θ > π maka p0 dianggap sebagai titik refleks dan p0 bukan anggota M. Himpunan akhir H adalah {p1, p9, p7, p5, p3}.(Alif Muqtadiret al, 2013).

2.4.7 Convexity Defects

Convex hull dari kontur lengan bawah dihitung untuk mendapatkan convexity defects dari kontur. Convexity defects menyediakan informasi yang sangat berguna untuk memahami bentuk kontur. Banyak karakteristik dari kontur yang rumit dapat digambarkan dengan convexity defects.Pada pembahasan sebelumnya, dijelaskan bahwa titik-titik yang membentuk convex hull harus merupakan bagian dari kontur. Langkah pertama dalam mencari convexity defects adalah menemukan titik awal (starting point) dari convexity defects pada kontur. Titik awal convexity defects adalah sebuah titik pada kontur yang juga termasuk dalam titik-titik convex hull, tapi titik selanjutnya pada kontur tidak termasuk dalam titik-titik convex hull. Gambar 2.6 menjelaskan titik awal dari convexity defects.Kontur dicari dengan jalur searah jarum jam.Titik merah adalah titik pertama yang termasuk dalam convex hull, tapi titik selanjutnya tidak termasuk dalam convex hull.Setelah definisi titik awal diketahui, titik akhir pun juga demikian.Titik akhir didefinisikan sebagai titik dari kontur yang termasuk dalam titik-titik convex hull, tapi titik sebelumnya tidak termasuk dalam titik-titik convex hull.Sebagaimana yang ditunjukkan oleh Gambar 2.6, titik ungu adalah titik akhir dari convexity defects. Dengan menghubungkan titik awal, titik akhir, dan titik di antara keduanya, area dari convexity defects dapat diketahui sebagaimana ditunjukkan oleh sebagaimana ditunjukkan oleh Gambar 2.7.(Rudy dan Marcus, 2012).

Gambar 2.6 Titik awal (starting point) dan titik akhir (ending point) convexity defect (Aliq dan bambang, 2016).

Gambar 2.7 Area convexity defects(Aliq dan bambang, 2016)

2.5 OpenCV

OpenCV (Open Source Computer Vision) adalah open source library yang berisi lebih dari 500 algoritma teroptimasi untuk analisa citra atau video.Sejak diperkenalkan pada tahun 1999, OpenCV sebagian besar telah diadopsi sebagai alat pengembangan utama oleh komunitas peneliti dan pengembang dalam bidang komputer visi.OpenCV pada awalnya dikembangkan di Intel oleh tim yang dipimpin oleh Gary Bradski sebagai inisiatif untuk memajukan penelitian dalam visi dan mempromosikan pengembangan aplikasi yang kaya dan berbasis visi-CPU-intensif. Setelah OpenCV versi Beta diluncurkan, versi 1.0 diluncurkan pada tahun 2006.Rilis besar kedua terjadi pada tahun 2009 dengan diluncurkannya OpenCV 2 yang menawarkan banyak perubahan penting.OpenCV didesain untuk digunakan bersama dengan Intel Image Processing Library (IPL) dan memperluas fungsionalitas terhadap citra dan pola analisis. Oleh karena itu, OpenCV berbagi format (iplImage) citra yang sama dengan IPL.

Pengaplikasian OpenCVdapat digunakan untuk interaksi antara manusia dan computer, misalnya wajah dari manusiadideteksi oleh camera/webcam, lalu di proses oleh computer, untuk melakukan aksitertentu seperti mengikuti/mengenal wajah orang tersebut.Kesemuanya itumembutuhkan OpenCV sebagai program utama antara webcam dan perangkatnya yaitucomputer maupun smartphone. Library ini terdiri dari fungsi-fungsi computer vision danAPI (Aplication Programming Interface) untuk image processing high level maupun lowlevel dan sebagai optimisasi aplikasi realtime. OpenCV sangat disarankan untukprogrammer yang akan berkutat pada bidang computer vision, karena library ini mampumenciptakan aplikasi yang handal, kuat dibidang digital vision, dan mempunyaikemampuan yang mirip dengan cara pengolahan pada manusia.

2.6 Unity 3D

Unity3D merupakan sebuah tools yang terintegrasi untuk membuat bentuk obyek 3 dimensi pada video games atau untuk konteks interaktif lain seperti visualisasi arsitektur atau animasi 3D real-time. Lingkungan dari pengembangan unity3D berjalan pada Microsoft Windows dan Mac Os X. Serta aplikasi yang dibuat oleh unity3D dapat berjalan pada Windows, Mac, Xbox 360, Playstation 3, Wii, Ipad, Iphone dan tidak ketinggalan pada platform Android. Unity juga dapat membuat game berbasis browser yang menggunakan Unityweb player plugin, yang dapat bekerja pada Mac dan Windows, tapi tidak pada Linux.

Adapan fitur–fitur yang dimiliki Unity 3D (Rizki et al. 2012) antara lain sebagai berikut :

1. Integrated Development Environment (IDE) atau lingkungan pengembangan terpadu.

2. Penyebaran hasil aplikasi pada banyak platform. Seperti Android, Flash, iOS, Blackberry, Wii, Xbox dan lain – lain.

3. Engine Grafis menggunakan Direct3D (Windows), OpenGL (Mac, Windows), OpenGL ES (iOS) dan proprietary (Wii).

4. Game Scripting melalui Mono, Scripting yang dibangun pada Mono, implementasi Open Source dari NET Framework. Selain itu pemrograman dapat menggunakan Unity Script (Bahasa Kustom dengan sintaks Java Script-Inspired, bahasa C# atau Boo (yang memiliki sintaks-Python-inspired).

2.7 C#

C# (dibaca C-Sharp) adalah bahasa pemrograman untuk .NetEnvironment.C# adalah bahasa baru yang miskin kompatibilitas tapi memiliki banyak fitur yang menarik dan menjanjikan. C# adalah bahasa pemrograman berbasis obyek yang memiliki inti, banyak kemiripannya dengan Java, C++, dan VB. Kenyataannya, C# menggabungkan efisiensi dari C++, desain berbasis objek yang sederhana dan bersih dari Java dan penyederhanaan bahasa dari Visual Basic. Seperti Java, C# juga tidak membolehkan multipleinhetitance atau penggunaan pointer (pada safe/managed code), tapi menyediakan garbage memory collection pada runtime, tipe dan pengecekan akses

memori.Akan tetapi, berlawanan dengan Java, C# mempertahankan operasi berguna yang unik pada C++ seperti operator overloading, enumeration, pre-processor directive, pointer (pada unmanaged/unsafe code), danfunction pointer (pada pengutusan form).

Dokumen terkait