j 1 j 1 ANALISIS DAN PERANCANGAN SISTEM

27 3.2.3 Grayscaling Frame citra yang didapat dari kamera akan diubah ke dalam citra grayscale. Pada OpenCV terdapat fungsi untuk mengubah citra RGB ke citra grayscale yaitu cvtColor. Penjelasan fungsi cvtColor akan dibahas seperti berikut. cvtColorsrc, dst, code Parameter :  Src : Citra input.  Dst : Citra output yang berupa citra kebabuan.  Code : Angka integer yang merepresentasikan kode transformasi warna apa yang akan dilakukan. Misal RGB ke grayscale dan RGB ke HSV. Sebagai contoh, terdapat sebuah matriks citra warna berukuran 3 x 3 piksel yang memiliki nilai RGB seperti ditunjukkan pada Tabel 3.1. Tabel 3.1. Matriks citra warna RGB ukuran 3 x 3 piksel

i,j 1

2 120 50 210 100 50 30 50 70 82 1 10 20 30 255 125 33 137 166 59 2 47 99 20 123 185 131 243 56 170 Maka proses perhitungan konversi nilai RGB menjadi nilai keabuan dengan persamaan 2.3 pada matriks 0,0 adalah sebagai berikut : � = . + . � + . � � = . + . + . � = . + . + . � = . = Dengan melakukan perhitungan yang sama pada semua piksel citra RGB, maka didapatkan hasil seperti tabel 3.2. Universitas Sumatera Utara 28 Tabel 3.2. Hasil konversi nilai citra RGB ke nilai citra keabuan

i,j 1

2 88 61 63 1 18 150 140 2 72 144 123 Hasil konversi citra RGB papan reklame yang diambil dari kamera smartphone Android a menjadi citra keabuan b dapat dilihat pada gambar 3.2. a Citra RGB yang tertangkap kamera b Citra keabuan grayscale Gambar 3.2. Proses konversi citra RGB menjadi citra keabuan 3.2.4 Edge Detection Canny Setelah noise pada citra dihilangkan, maka tahap selanjutnya adalah pendeteksian tepi dengan metode Canny. Pada OpenCV, fungsi untuk melakukan pendeteksian tepi Canny adalah Canny. Penjelasan fungsi Canny akan dibahas seperti berikut. Cannysrc, dst, thres1, thres2, apertureSize Parameter :  Src : Citra input berupa citra keabuan.  Dst : Citra output berupa citra biner dengan tepi – tepi yang terdeteksi.  Thres1 : Nilai batas awal untuk prosedur hysterisis.  Thres2 : Nilai batas akhir untuk prosedur hysterisis.  ApertureSize : Angka integer untuk menentukan besar matriks pada operator sobel. Hasil pendeteksian tepi dari citra keabuan menggunakan metode canny dapat dilihat pada gambar 3.3. Universitas Sumatera Utara 29 Gambar 3.3. Citra deteksi tepi canny 3.2.5 Dilasi dan Erosi Tepi yang dihasilkan dari proses deteksi tepi Canny masih ada yang terputus – putus dan masih ada yang garis tepi yang tidak diinginkan. Oleh karena itu dibutuhkan proses dilasi dan erosi untuk menyatukan garis tepi yang terputus dan menghilangkan garis – garis kecil yang dianggap sebagai tepi. Fungsi dilasi dan erosi pada OpenCV adalah dilate dan erode. Fungsi erode dan dilate memiliki parameter yang sama namun memberikan output yang berbeda. Fungsi erode dan dilate dapat dijabarkan sebagai berikut. Dilatesrc, dst, kernelSize Erodesrc, dst, kernelSize Parameter :  Src : Citra input berupa citra biner.  Dst : Citra output berupa citra biner yang telah ditebalkan dilasi atau ditipiskan erosi.  kernelSize: Penentuan ukuran matriks yang dipakai pada proses dilasi atau erosi. Jika kosong maka nilai default-nya adalah 3x3. Citra hasil proses dilasi dan erosi dapat dilihat pada gambar 3.4. a Gambar hasil proses dilasi Universitas Sumatera Utara 30 b Gambar hasil proses erosi Gambar 3.4. Citra hasil proses dilasi dan erosi 3.2.6 Contour Tracing Pada tahap contour tracing, garis tepi yang membentuk suatu bangun datar kontur akan disimpan koordinatnya. OpenCV menyediakan fungsi untuk mencari contour, yaitu findContour yang menghasilkan output titik – titik contour yang teridentifikasi. Titik – titik yang teridentifikasi dapat digambar dengan fungsi drawContour. Berikut penjelasan fungsi findContour dan drawContour. findContoursrc, contours, hierarchy, mode, method Parameter :  Src : Citra input berupa citra biner.  Contours : Titik koordinat kontur yang terdeteksi akan disimpan dalam bentuk vektor.  Hierarchy : Vektor output opsional berisikan informasi tentang topologi citra.  Mode : Cara pendeteksian titik kontur. Pada penelitian ini menggunakan Imgproc.RETR_LIST.  Method : Metode pendekatan kontur. Pada penelitian ini menggunakan Imgproc.CHAIN_APPROX_NONE yang mengambil dan menyimpan semua titik kontur tanpa terkecuali. Contoh hasil pendeteksian kontur dapat dilihat pada gambar 3.5. Gambar 3.5. Citra dengan kontur yang terdeteksi Universitas Sumatera Utara 31 3.2.7 Filter Contour Setelah contour diperoleh, masih terdapat contour yang tidak sesuai dengan objek yang dimaksud. Oleh karena itu, diperlukan proses filter pada contour dengan cara mencari luas terbesar dan mencari banyak sudut lengkungan yang terdapat pada masing – masing contour agar contour yang didapat merupakan papan reklame yang ingin diukur ukurannya. Fungi pada OpenCV untuk menghitung luas contour adalah contourArea dan fungsi untuk mencari jumlah sudut adalah approxPolyDP. Proses filter dilakukan karena papan reklame pasti memiliki luas contour terbesar dan berbentuk segi empat atau memiliki 4 sudut pada citra sehingga contour yang lain akan dieliminasi. Berikut penjelasan fungsi yang akan digunakan. contourAreacontour Parameter :  Contour : Titik kontur yang akan dihitung nilai luasnya. approxPolyDpcontour, approxCurve, epsilon, closed Parameter :  Contour : Titik kontur yang menjadi input.  ApproxCurve : Hasil output berupa titik – titik koordinat dari sudut yang didapat.  Epsilon : Nilai double yang menentukan nilai akurasi dalam pencarian sudut.  Closed : Nilai boolean yang menentukan apakah sudut – sudut tersebut terhubung atau tidak. Citra hasil proses penyaringan kontur dapat dilihat pada gambar 3.6. Gambar 3.6. Citra hasil proses penyaringan kontur Universitas Sumatera Utara 32 3.2.8 Pengaturan Perspektif Papan reklame yang diambil tidak sepenuhnya berbentuk persegi panjang dikarenakan pengambilan gambar tidak selalu tepat tegak lurus terhadap papan reklame. Oleh karena itu, penulis menggunakan fungsi minAreaRect pada OpenCV dengan parameter kontur papan reklame yang didapat dari penyaringan kontur untuk mencari bentuk persegi panjang yang mendekati bentuk papan reklame yang tertangkap oleh kamera. Persegi panjang yang terbentuk berwarna kuning seperti pada gambar 3.7. Gambar 3.7. Hasil dari fungsi minAreaRect 3.2.9 Perhitungan ukuran Billboard Perhitungan ukuran billboard dapat dihitung dengan menggunakan konsep proyeksi perspektif dengan persamaan 2.8 dan persamaan 2.9. Ukuran lebar dan tinggi objek pada citra didapat dari persegi panjang yang dibentuk dari minAreaRect. Pada penelitian ini nilai nilai jarak fokus focal length telah ditentukan yaitu 1740. Misalkan lebar width objek pada citra bernilai 652 pixel ,tinggi height objek pada citra bernilai 392 pixel dan jarak objek terhadap kamera bernilai 400 cm, maka lebar dan tinggi objek yang asli dapat dihitung seperti berikut. � = � . � � = � . � � = . � = . � = � = � = , � � = , � Universitas Sumatera Utara 33 3.2.10 Perhitungan biaya pajak reklame Biaya pajak reklame dapat dihitung dengan menggunakan persamaan 2.1. Misalkan papan reklame yang akan diuji berada pada jalan Setia Budi yang merupakan jalan kelas 1, maka nilai sewa bernilai Rp 9.000,- dan nilai Strategis bernilai Rp 30.000.000,-. Oleh karena itu, jumlah pajak yang akan dibayarkan dapat dihitung seperti berikut. � � = � � � � � ∗ �ℎ ∗ � � � + � � �� ∗ . � � = , ∗ , . ∗ ∗ . + . . ∗ . � � = . . , + . . � � = � . . , , − ��

3.3 Kegiatan User dan Admin