14336288334256743554691553 tutorial digital image processing using visual basic 6

Upload: androalifrakhman

Post on 14-Jan-2016

54 views

Category:

Documents


5 download

DESCRIPTION

Tutorial Digital Image Processing Using Visual Basic 6

TRANSCRIPT

  • Tutorial Digital Image Processing Using Visual Basic 6.0

    . Image Prosessing (Pengolahan Citra) semakin mengalami

    perkembangan yang pesat dikarekan telah banyaknya

    penelitian yang dilakukan untuk terus menyempurnakan

    kemampuan Computer Vision. Berbagai Aplikasi yang

    menggunakan pengolahan citra telah banyak dibuat seperti

    identifikasi sidik jari,kornea dan wajah serta penggunaan

    sensor visual pada robot dan sebagainya. Mau tahu apa itu

    Pengolahan Citra dan Bagaimana membuat Aplikasi

    pengolahan Citra Digital Sendiri?

    Dalam Pengolahan CItra Digital, mengubah bentuk citra dari

    suatu gambar ke bentuk citra lainnya merupakan bagian yang

    terpenting. Hal ini dimaksudkan agar file gambar yang diolah

    memiliki ukuran file yang kecil sehingga mudah untuk diproses

    selain itu juga agar algoritma untuk mengidentifikasi pada

    gambar dapat dilakukan.

    Salah satu caranya adalah dengan mengkonversi format RGB

    ke Format Greysacle. Pada Pengolahan citra Digital Kali ini,

    Andiero akan mencoba memberikan Tutorial Pengolahan Citra

    Digital untuk membuat sebuah program menggunakan visual

    basic 6.0 untuk mengkonversi citra RGB ke citra GreyScale.

    Adapun langkah-langkahnya sebagai berikut:

    - Buka program visual basic 6.0 yang telah terinstal di

    komputer anda.

    - Buat sebuah project baru,pilih Standart EXE.

    - Tambahkan beberapa control seperti picture box, command

  • button.

    - Ubah Properties masing masing sesuai keinginan anda.

    Sebagai catatan ubah properties dari kedua Control Picture

    Box untuk Scale Mode menjadi 3-Pixel.

    - Tambahkan sebuah gambar yang sesuai ukurannya dengan

    picture box yang pertama.

    - Susun seperti gambar.1

    Gambar.1 Desain Program Pengolahan Citra

    - Kemudian buka jendela code dan ketikan script berikut ini

    Const IntPixelX = 300

    Const IntPixelY = 300

    Dim Pixels(1 To IntPixelX, 1 To IntPixelY) As Long

    Dim x, y As Integer

    Dim Merah, Hijau, Biru, Abu2 As Integer

    - Selanjutnya Klik dua kali command button dan ketikan code

    berikut ini

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Pixels(x, y) = Picture1.Point(x, y)

    Next y

    Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Merah = Pixels(x, y) And &HFF

    Hijau = ((Pixels(x, y) And &HFF00) / &H100) Mod

  • &H100

    Biru = ((Pixels(x, y) And &HFF0000) / &H10000) Mod

    &H100

    Abu2 = (Merah + Hijau + Biru) / 3

    Pixels(x, y) = RGB(Abu2, Abu2, Abu2)

    Next y

    Next x

    For x = 1 To IntPixelX

    For y = 1 To IntPixelY

    Picture2.PSet (x, y), Pixels(x, y)

    Next y

    Next x

    - jalankan program pengolahan citra menggunakan visual

    basic 6.0 buatan anda

    - Gambar yang anda konversi akan beruba menjadi abu-abu

    (GreyScale).

    Gambar.2 Program Pengolahan Citra

    Seperti itulah Script program yang dapat digunakan untuk

    membuat program pengolahan citra menggunakan visual basic

    6.0. Inti dari program konversi format citra RGB menjadi

    format citra greyscale terletak pada script Abu2 = (Merah +

    Hijau + Biru) / 3. Saya merasa program tersebut masih

    banyak kekurangannya, oleh karena itu saya sangat senang

    jika ada diantara kalian yang dapat membagi ilmunya.

    Selamat Mencoba!

  • File Download Source Code pengolahan Citra Digital memang

    Tidak saya sertakan diblog saya dengan tujuan untuk

    membuat pengunjung blog ini mencoba sendiri dirumah

    sehingga Ilmu yang didapat akan lebih melekat dan

    bermamfaat. Harap Di Maklumi!

    Jika ada pertanyaan Silakan berkomentar. Saya akan

    menjawab semampu Saya ( Tapi harap Maklum, saya jarang

    terkoneksi ke Internet)

    Kunjungi Blog-blog saya untuk belajar lebih banyak tentang

    Visual Basic:

    http://bocah-cakil.blogspot.com

    Elektronika00.TK http://Anekahobi.wordpress.com

    Membuat Database Dengan Visual Data

    Manager pada Visual Basic 6.0

    Pembahasan kali ini adalah cara membuat database.

    Sebenarnya untuk membuat database kita bisa membuat

    dengan menggunakan Microsoft Access atau menggunakan

    database MySQL.

    Tapi sekarang saya akan menjelaskan bagaimana membuat

    database dengan aplikasi bawaan dari visual basic sendiri,

    yaitu menggunakan Visual Data Manager.

    oke kita mulai saja pembahasannya dan ikuti langkah-langkah

    berikut ini...^_^

    1. Langkah pertama dan wajib dilakukan adalah buka dulu

    aplikasi Visual Basic nya.

    2. Kemudian klik menu Add-Ins dan pilih Visual Data Manager.

    . .

  • 3. Setelah muncul jendela VisData, klik pada File > New >

    Microsoft Access > Version 7.0 MDB, setelah itu simpan nama

    database sesuai keinginan, misalnya DBLatihan.

    4. Selanjutnya klik kanan dimana saja pada tab database

    windows lalu pilih New Table, kemudian akan muncul form

    table structure, isikan nama tabel yang akan dibuat di Table

    Name, kemudian buat field dalam tabel dengan mengklik

    tombol Add Field, lalu inputkan nama field, type, dan size dari

    field yang ingin dibuat (sesuaikan type dan size dengan field

    yang dibuat).

    5. Setelah Membuat tabel dan mengisi fieldnya, langkah

    selanjutnya klik Build The Table pada Table Structure.

    Source : http://fadilcrows.blogspot.com/

    Simulasi Pembacaan Image Plat Nomor Kendaraan dengan Bantuan Delphi 7 dan Neural network. Simulasi Pembacaan Image Plat Nomor Kendaraan dengan Bantuan Delphi 7

    dan Neural network.

    TUGAS UTS FISIKA KOMPUTASI

  • SYAMSUDIN

    080913001

    PROGRAM STUDI S-1 FISIKA

    DEPARTEMEN FISIKA

  • FAKULTAS SAINS DAN TEKNOLOGI

    UNIVERSITAS AIRLANGGA

    2012

    JUDUL

    Simulasi Pembacaan Image Plat Nomor Kendaraan dengan Bantuan Delphi 7

    dan Neural network.

    Non linier programming.

    Abstrak

    Syamsudin 080913001. Simulasi Pembacaan Image Plat Nomor Kendaraan

    dengan Bantuan Delphi 7 dan Neural network. Jurusan S1-fisika Fakultas

    Sains dan Teknologi Universitas Airlangga.

    Pada Umumnya sistem pencatatan plat nomer mobil atau plat nomor motor

    yang dilakukan di tempat masuk parkir masih dilakukan secara konvensional,

    yaitu dengan pencatatan manual plat nomer kendaraan yang dilakukan oleh

    kasir pada media karcis. Hal yang konvensional ini masih banyak yang

    dipakai di pintu keluar masuk kendaraan salah satunya di pintu masuk atau

    keluar jalan tool, yang terbaru saat ini mulai digunakan media kamera dan

    komputer namun tetap saja pencatatan plat nomer kendaraan masih

    dilakukan secara manual oleh kasir, dengan melakukan pencatatan yang

    kontinou, pada suatu saat tidak menuntut kemungkinan akan timbul suatu

    kejenuhan yang akan mempengaruhi konsentrasi kasir dalam melakukan

    pencatatan plat nomer kendaraan yang masuk dan keluar pintu.

    Dari hal tersebut dirancanglah sebuah sistem untuk mendeteksi dan

  • membaca plat nomer kendaraan dengan menggunakan metode actificial

    intelligion (AI). Dalam system ini juga terdapat operasi pengambilan gambar

    kendaraan oleh suatu kamera, gambar tersebut akan masuk dan dibaca oleh

    suatu komputer dan juga operasi cropping plat nomor yang dilakukan oleh

    suatu program dengan menggunakan bantuan Delphi 7 sebagai pendukung

    dari metode mendeteksi posisi plat nomer dengan metode actificial

    intelligion. Operasi pengambilan gambar oleh kamera berfungsi untuk

    mendapatkan image mobil yang didalam nya terdapat plat nomor kendaraan,

    gambar yang telah ditangkap oleh kamera diinputkan dalam computer,

    gambar yang masuk dalam computer akan di deteksi oleh software dengan

    bantuan Delphi 7 yang khusus mengambil image yang masuk dalam

    computer, kemudian dilakukan proses cropping plat nomor kendaraan yang

    bertujuan hanya mendapatkan plat nomor kendaraan. Menghilangkan nois-

    nois yang berupa warna warna disekeliling plat nomor, sehingga didapatkan

    nya plat nomor yang siap untuk dilakukan proses actificial intelligion untuk

    membaca, menterjemahkan dan akhirnya merubah dari bentuk image plat

    motor menjadi teks atau karakter. Tingkat keberhasilan sistem pembacaan

    plat nomer motor adalah 75% sampai 100% dari 20 sample plat nomor

    yang diberikan oleh program actificial intelligion pendeteksi plat nomor

    dengan karakter teks plat nomor kendaraan yang berbeda-beda dan tempat

    plat nomor kendaraan yang berbeda-beda pula.

    Kunci : kamera, proses cropping oleh software dengan bantuan

    Delphi 7, pembacaan plat nomor kendaraan oleh actificial

    intelligion (neural network).

    PENDAHULUAN

    1.1 Latar Belakang

    Pemanfaatan teknologi digital pada bidang pengolahan citra sampai

    pendeteksian image prosesing sudah semakin berkembang, hal ini dapat

    dilihat dengan banyaknya software atau perangkat lunak dalam bidang

    pengolahan citra, mendeteksi citra dan pembacaan apa yang ada dalam image

    tersebut. Pengolahan citra secara digital adalah memproses suatu citra

    sehingga menghasilkan citra lain yang lebih baik kualitasnya. Dalam proses

    perbaikan citra terdapat berbagai metode di antaranya coding, scalling,

  • sampling, filtering, cropping, pembacaan image dan metode yang lainnya.

    Pembacaan citra digital atau bisa di spesifikasikan untuk membaca plat

    nomor kendaraan dapat dilakukan dengan memperoleh image Citra digital

    terlebih dahulu kemudian akan di deteksi dan di crop oleh software dan pada

    akhirnya hasil cropping tersebut di serahkan ke neural network untuk

    dlakukan pembacaan plat nomor kendaraan. Citra digital dapat diperoleh

    melalui scanner, kamera digital dan alat-alat lain yang berfungsi untuk

    capture citra. Pada saat proses capture (pengambilan gambar), ada beberapa

    gangguan yang mungkin terjadi, seperti kamera tidak fokus atau munculnya

    bintik-bintik yang bisa jadi disebabkan oleh proses capture yang tidak

    sempurna. Setiap gangguan pada citra dinamakan dengan noise. Noise pada

    citra tidak hanya terjadi karena ketidak-sempurnaan dalam proses capture,

    tetapi bisa juga disebabkan oleh kotoran-kotoran yang terjadi pada citra, oleh

    karena itu citra yang memiliki noise perlu diadakan pemrosesan melalui

    pengolahan citra agar dapat diperoleh citra yang kualitasnya lebih baik dan

    akn lebih mudah diterjemahkan oleh neural network untuk pemcaan plat

    nomor, sehingga kesalahan pembacaan neural network akan lebih kecil.

    Noise yang terdapat pada citra digital dapat dikurangi atau dihilangkan

    dengan berbagai macam metode, metode-metode yang sering digunakan

    antara lain dengan metode median filter. Median filter adalah teknik

    mereduksi noise dengan cara mengganti piksel noise dengan nilai median

    atau nilai tengah dari piksel-piksel tetangganya, dan piksel itu sendiri. Filter

    median sangat efektif untuk menghilangkan noise jenis salt and peper dan

    juga dapat mempertahankan detail citra karena tidak tergantung dengan

    nilai-nilai yang berbeda dengan nilai-nilai yang umum dalam lingkungannya.

    Selain median filter terdapat metode lain yaitu Gaussian filter. Gaussian filter

    adalah suatu filter dengan nilai pembobotan pada setiap piksel dipilih

    berdasarkan bentuk fungsi Gaussian. Filter ini sangat baik dan sering

    digunakan untuk menghilangkan noise yang bersifat sebaran normal, yang

    banyak dijumpai pada citra hasil proses digitalisasi menggunakan kamera, hal

    ini terjadi karena merupakan fenomena alamiah akibat dari sifat pantulan

    cahaya dan kepekaan sensor cahaya pada kamera itu sendiri. Selain metode-

    metode di atas terdapat berbagai macam metode yang sering digunakan untuk

    menghilangkan noise, namun pada tugas akhir ini akan diteliti menggunakan

    metode bandpass dan bandstop untuk mereduksi noise karena metode ini

    akan menghasilkan citra yang lebih baik dimana efek blur yang dihasilkan

    lebih kecil dibandingkan dengan metode Gaussian filter sehingga citra hasil

  • akan tampak lebih baik. Dengan cara seperti inilah untuk memperkecil

    permasalahan yang akan dihadapi oleh neural network untuk membaca dan

    menterjemahkan dari image menjadi teks. Yaitu plat nomor kendaraan.

    Karena neural network sendiri akan bisa bekerja dengan baik jika disuguhkan

    pada image yang simple tanpa banyak noise. Dan hal inilah yang akan

    mempercepat kinerja neural network. karena proyek ini di buat untuk

    pembacaan plat nomor kendaraan dengan kecepatan dan ketelitian

    pembacaan plat nomor kendaraan yang sangat tinggi.

    1.2 Perumusan Masalah

    Berdasarkan latar belakang di atas, dapat dirumuskan permasalahan yaitu

    bagaimana membuat suatu perangkat lunak pengolahan citra dengan metode

    cropping dan mengurangi noise untuk mendapatkan citra plat nomor

    kendaraan yang simple dengan bantuan Delphi 7, image tersebut untuk

    diserahkan dan dibaca oleh neural netwok (actificial intelligion).

    1.3 Batasan Masalah

    Pembuatan software, dibuat sesuai dengan tujuannya yaitu membaca image

    yang telah di filtter, penghilangan noise dan cropping image plat nomor

    kendaraan oleh neural network, adapun batasan masalahnya adalah sebagai

    berikut :

    Capture image dengan dengan camera.

    Teknik filtering yang digunakan adalah bandpass dan bandstop.

    image yang diolah dalam program menggunakan format BMP.

    Pemasukan nilai batas atas dan batas bawah di antara 0 sampai 255.

    Pengurangan noise yang terdapat dalam image.

    Dilakukan nya cropping untuk mendapatkan image plat nomor.

    Kemampuan yang dimiliki program adalah pemanggilan file,

    menyimpan file dan melakukan pengolahan citra dengan filter

    bandpass dan bandstop.

    Image yang telah di olah diserahkan ke neural network untuk

    pembacaan plat nomor kendaraan.

    Pembuatan program menggunakan Borland Delphi 7.0 dan neural network

    (actificial intelligion)

    1.4 Tujuan

  • Tujuan dari tugas akhir ini adalah membaca plat nomor kendaraan dengan

    valid

    1.5 Manfaat Penelitian

    Manfaat yang diharapkan dalam penelitian ini adalah kemudahan dalam

    pembacaan plat nomor yang masuk dan keluar dari suatu area yang

    membutuhkan informasi dari plat nomor kendaraan dengan menggunakan

    teknologi informatika.

    TINJAUAN PUSTAKA

    2.1. SISTEM INFORMASI

    Sistem informasi pada hakekatnya merupakan suatu sistem yang memiliki

    subsistem-subsistem untuk menghasilkan informasi. Terdapat dua kelompok

    pendekatan dalam mendefinisikan sistem, yaitu yang menekankan pada

    prosedurnya dan yang menekankan pada komponen atau elemennya. Jerry

    Fitz Gerald mendefinisikan sistem lebih menekankan pada prosedur yaitu

    suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan,

    berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk

    menyelesaikan suatu sasaran yang tertentu.

    Gordon B Davis mendefinisikan sistem lebih menekankan pada elemen atau

    komponenenya yaitu kumpulan elemen elemen yang salang berinteraksi

    untuk mencapai suatu tujuan tertentu (Jogianto, 2001). Secara umum system

    adalah sekelompok elemen-elemen yang terintegrasi dengan maksud yang

    sama untuk mencapai suatu tujuan (Raymond Mc Leod, 1996).

    Gardy Booch dan James Rumbaugh (1994) sepakat bergabung

  • mengembangkan proses standar tunggal dalam metode berorientasi objek.

    Tahun 1995, Ivar Jacobson membangun bahasa pemodelan berorientasi objek

    standar yang dikenal dengan nama Unified Modeling Language (UML).

    Unified Modeling Language (UML) merupakan sistem arsitektur yang bekerja

    dalam objek oriented analisis design dengan satu bahasa yang konsisten

    untuk menentukan, visualisasi, kontruksi dan mendokumentasikan artifacts

    yang terdapat dari sistem software. Pada prinsipnya semua pakar

    mendefinisikan system tidak lepas dari komponen atau elemen-elemen yang

    membentuk system.

    2.1 Rekayasa Perangkat Lunak

    Perangkat lunak adalah

    1. Instruksi atau program computer yang bila dieksekusi dapat

    menjalankan fungsi tertentu.

    2. Struktur data yang dapat membuat program manipulasi informasi.

    3. Dokumen yang menjelaskan operasi dan penggunaan program. (Pressman,

    2000)

    Menurut Fritz, Gerald, Jerry, Tahun 1981 :

    Rekayasa Perangkat Lunak adalah pengembangan dan penggunaan prinsip

    pengembangan suara untuk memperoleh perangkat lunak secara ekonomis

    yang reliable dan bekerja secara efisien pada mesin nyata.

    Menurut IEEE (Institute of Electrical and Electronik Engineers) :

    Rekayasa Perangkat Lunak adalah aplikasi dari rancangan yang sistematik,

    berdisiplin dan quantifiable (dapat diukur) terhadap pengembangan, operasi

    dan perawatan perangkat lunak.

    Di dalam merekayasa perangkat lunak terdapat tujuan yang hendak dicapai

    atau diinginkan yaitu bagaimana menghasilkan produk perangkat lunak yang

    baik, yang dimaksud dengan lebih baik adalah perangkat lunak yang mudah

    di gunakan, dirawat dapat diandalkan, bekerja secara efisien dan mempunyai

    antarmuka pemakai yang baik dan juga di tinjau dari segi biaya yang

    ekonomis dan efisien.

  • Perangkat lunak memiliki karakteristik yang berupa elemen logika dan bukan

    merupakan elemen fisik. Dengan demikian, perangkat lunak memiliki cirri

    berbeda dengan perangkat keras, menurut pressman 2000 karakteristik

    rekayasa perangkat lunak adalah sebagai berikut :

    a) Perangkat lunak terciptakan adanya pengembangan

    b) Perangkat lunak tidak akan menjadi "kuno" ( tidak dipakai lagi )

    c) Kebanyakan perangkat lunak dibuat secara khusus untuk tujuan tertentu

    dari pada disusun dengan komponen yang ada.

    Perangkat lunak memiliki yang sering disebut "waterfall mode"

    atau siklus klasik, yang meliputi urutan sistematika dalam rangka

    pengembangan perangkat lunak. Rekayasa sistem dibutuhkan karena

    perangkat lunak selalu menjadi bagian dari sebuah sistem yang lebih besar.

    Hal ini dimulai dengan melakukukan penyusunan terhadap kebutuhan-

    kebutuhan tersebut ke dalam perangkat lunak. Pandangan terhadap sistem ini

    diperlukan ketika perangkat lunak harus dihubungkan dengan elemen lain

    seperti hardware dan database. rekayasa sistem meliputi pengumpulan

    kebutuhan pada tingkat sistem dengan sejumlah kecil desain dan analisis

    tingkat atas.

    1. Tahap Analisis (Analysis Requirement)

    Analisis kebutuhan perangkat lunak merupakan proses pengumpulan

    kebutuhan yang dikhususkan pada perangkat lunak, untuk memahami ruang

    lingkup informasi perangkat lunak tersebut seperti fungsi-fungsi yang

    dibutuhkan, cara kerja, dan antarmuka (interface). Kebutuhan akan sistem ini

    didokumentasikan dan ditinjau kembali bersama user atau pemakai

    perangkat lunak.

    1. Tahap Desain (Desain)

    Desain perangkat lunak merupakan proses langkah-langkah yang

    dipusatkan pada empat atribut program yang berbeda, yaitu struktur data,

    arsitektur perangkat lunak, perincian prosedur dan karakteristik antarmuka.

    Proses desain menerjemahkan kebutuhan ke dalam perangkat lunak yang

    dapat diperkirakan untuk kualitas sebelum dimulai pengkodean. Desain juga

    didokumentasikan dan menjadi bagian dari konfigurasi perangkat lunak.

  • 1. Tahap Pengkodean (Coding)

    Tahap pengkodean bertujuan untuk menerjemahkan desain ke dalam bentuk

    bahasa pemrograman yang dapat di jalankan oleh mesin khususnya

    computer.

    1. Tahap Uji Coba (Testing)

    Proses uji coba dititik beratkan pada logika internal perangkat lunak, untuk

    menjamin bahwa semua perintah telah dicoba. Dan fungsi-fungi eksternal, uji

    coba dilakukan untuk menemukan kesalahan (error), serta memastikan

    bahwa dengan input yang didefinisikan akan menghasilkan output yang

    sesuai dengan keinginan user.

    1. Pemeliharaan (Maintenance)

    Pada tahap ini, perangkat lunak akan mengalami perubahan-perubahan

    setelah digunakan. Hal ini dapat terjadi pada saat di temukannya kesalahan,

    proses adaptasi perangkat lunak pada sistem operasi dan perangkat lunak

    lainnyayang dapat menimbulkan kesalahan. Pemeliharaan perangkat lunak

    menggunakan kembali setiap langkah daur hidup (life cycle) yang terdahulu

    untuk sebuah program yang sudah ada. Hal ini lebih baik daripada membuat

    suatu program baru lagi. Di dalam permodelan suatu sistem memiliki alat

    bantu untuk menggambarkan suatu diagram aliran instruksi yang berisi

    serangkaian simbol yang menunjukkan secara logika tentang hubungan antar

    elemenn-elemen yang disebut diagram alir atau flowchart. Diagram alir atau

    flowchart dapat melukiskan sebuah kagiatan pengolahan informasi yang

    berkisar tentang konfigurasi komputer sampai tahap rinci dalam program.

    2.3. SISTEM INFORMASI MASUK KELUARNYA KENDARAAN

    Perkembangan ilmu pengetahuan dan teknologi saat ini telah berkembang

    dengan sangat pesat. Salah satu bukti nyata dapat kita lihat dari penggunaan

    sistem komputerisasi dalam segala aktivitas manusia baik dalam hal

    organisasi, transportasi, komunikasi, produksi maupun pengelolaan

    administrasi keuangan. Komputerisasi menjadi pilihan utama karena

    memiliki berbagai macam kelebihan dibandingkan dengan sistem manual,

    baik dari segi ketelitian, keakuratan dan juga dari segi kecepatan

    pemprosesan data.

  • Sarana parkir merupakan kebutuhan publik yang dipercaya dapat

    memberikan kenyamanan bagi pengunjung untuk menitipkan kendaraan

    mereka didalam area masuk keluar nya kendaraan parkir. Salah satu aspek

    terpenting bagi public pengguna sarana masuk keluarnya kendaraan. Dengan

    semakin besarnya banyak kendaraan yang keluar masuk suatu area itu

    sendiri, maka aspek keamanan tidak mungkin hanya dengan mengandalkan

    petugas keamanan melainkan perlu untuk mengembangkan suatu

    sistem otomatis yang terkomputerisasi. Jadi suatu sistem informasi keluar

    masuknya suatu kendaraan itu sendiri merupakan suatu sistem informasi

    yang mengenangani segala sesuatu yang berkenaan dengan proses keluar

    masuk nya kendaraan.

    2.4 Pengolahan Citra

    Citra merupakan suatu signal digital dua dimensi yang dapat di observasi oleh

    sistem visual manusia. Ditinjau dari sudut pandang matematis, citra

    merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang

    dwimatra. Sumber cahaya menerangi obyek, obyek memantulkan kembali

    sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alat-

    alat optik, misalnya mata manusia, kamera pemindai (scanner) kamera

    digital, dan sebagainya, sehingga banyak obyek citra tersebut terekam.

    Citra digital merupakan suatu larik / array dua dimensi atau suatu matrik

    yang elemen-elemennya menyatakan tingkat keabuan dari elemen gambar;

    jadi informasi yang terkandung di dalamnya bersifat diskrit (Arymurthy dan

    Setiawan, 1992).

    Pengolahan citra digital adalah pemrosesan citra, khususnya dengan

    menggunakan komputer, menjadi citra yang kualitasnya lebih baik (Rinaldi

    Munir, 2004). Teknik-teknik pengolahan citra mentransformasikan citra

    menjadi citra lain. Jadi masukannya adalah citra dan keluarannya juga citra,

    namun keluaran mempunyai kualitas yang lebih baik dari pada citra

    masukan.

    Terdapat dua jenis citra yaitu citra diam dan citra bergerak. Citra bergerak

    adalah rangkaian citra diam yang ditampilkan secara beruntun (sekuensial)

    sehingga memberi kesan pada mata sebagai gambar yang bergerak.

    Sedangkan citra diam adalah citra yang tidak bergerak.

  • fungsi kontinu menjadi nilai-nilai diskrit disebut pencitraan (imaging) atau

    digitalisasi. Citra yang dihasilkan inilah yang disebut citra digital(Digital

    Image), dinyatakan sebagai kumpulan piksel dalam matrik dua dimensi. Pada

    umumnya citra digital berbentuk empat persegi panjang dan dimensi

    ukurannya dinyatakan tinggi dikalikan dengan lebar atu lebar dikalikan

    dengan panjang.

    2.5 Format File Bitmap (BMP)

    Format citra yang baku di lingkungan sistem operasi Microsoft Windows

    adalah file bitmap (BMP). Pada saat ini format BMP kurang begitu populer

    dan mulai jarang digunakan dibanding format JPG atau GIF, karena file BMP

    pada umumnya tidak dimampatkan, sehingga ukuran relatif lebih besar dari

    pada file JPG atau GIF.

    Terjemahan bebas bitmap adalah pemetaan bit. Artinya nilai intensitas piksel

    di dalam citra dipetakan ke sejumlah bit tertentu. Peta bit umumnya adalah 8,

    yang berarti setiap piksel panjangnya 8 bit. Delapan bit ini mempresentasikan

    nilai intensitas piksel. Dengan demikian ada sebanyak 28 =256 derajat

    keabuan, mulai dari 0 (00000000) sampai 255 (11111111). Setiap berkas

    bitmap terdiri atas header berkas, header bitmap, informasi palet dan data

    bitmap. Header adalah data yang terdapat pada awal bagian berkas citra.

    Terdapat tiga macam citra dalam format BMP, yaitu citra biner, citra

    berwarna dan citra hitam-puth (grayscale). Citra biner hanya memiliki dua

    nilai keabuan 0 dan 1. Oleh kerena itu 1 bit telah cukup untuk

    mempresentasikan nilai piksel. Citra berwarna adalah citra yang lebih umum.

    Warna yang terlihat di dalam citra bitmap merupakan kombinasi dari tiga

    komponen warna, yaitu : R (Red), G (Green) dan B (Blue). Kombinasi dari

    tiga warna RGB tersebut menghasilkan warna yang khas untuk piksel yang

    bersangkutan. Pada citra 256 warna, setiap piksel memiliki panjang 8-bit,

    akan tetapi komponen RGBnya disimpan dalam tabel RGB yang disebut palet.

    Pada tabel 2.5 berikut akan memperlihatkan panjang informasi palet untuk

    setiap versi bitmap, masing-masing untuk citra 16 warna, 256 warna dan 16,7

    juta warna. Berkas citra 24-bit tidak mempunyai palet RGB, karena langsung

    diuraikan ke dalam data bitmap. Informasi palet warna terletak sesudah

    header bitmap. Informasi palet warna dinyatakan dalam satu tabel RGB.

  • Setiap entry pada tabel terdiri atas tiga buah field yaitu, R (Red), G (Green),

    dan B (Blue). Data bitmap diletakan sesudah informasi palet.

    Format citra 8-bit dapat dilihat pada gambar 2.7. Format citra 4-bit (16

    warna), hampir sama dengan format citra 8-bit. Pada citra 4-bit dan citra 8-

    bit, warna suatu piksel diacu dari tabel informasi palet entry ke-k (k

    merupakan nilai rentang 0-15 untuk citra 16 warna dan 0-155 untuk citra 256

    warna). Sebagai contoh pada gambar 2.6, piksel pertama bernilai 2, warna

    piksel pertama ini ditentukan oleh komponen RGB pada palet warna entry ke-

    2, yaitu R=14, G=13 dan B=16.piksel kedua serupa dengan piksel pertama.

    Piksel ketiga bernilai 1, warna ditentukan oleh komponen RGB pada palet

    warna entry ke-1, yaitu R=20, G=45 dan B=24. Demikian seterusnya untuk

    piksel-piksel lainnya. Khusus untuk citra hitam-putih 8-bit, komponen R,G

    dan B suatu piksel bernilai sama dengan data bitmap piksel tersebut. Jadi

    piksel dengan nilai data bitmap 129, memiliki nilai R=129, G=129 dan B=129.

    2.6 Pemrograman Borland Delphi 7

    Delphi berasal dari bahasa pemrograman yang cukup terkenal, yaitu bahasa

    pascal. Bahasa pascal diciptakan pada tahun 1971 oleh ilmuwan dari swiss,

    yaitu Niklaus Wirth. Namapascal diambil dari ahli matematika dan filsafat

    Perancis, yaitu Blasie Pascal (1623-1622).

    Karena pemrograman windows dengan turbo pascal masih dirasa cukup sulit,

    maka sejak tahun 1993 Borland International mengembangkan bahasa pascal

    yang bersifat visual. Hasil dari pengembangan ini adalah dirilisnya Delphi 1

    pada tahun 1995. Perkembangan Delphi tidak berhenti sampai di situ. Pada

    tahun berikutnya 1996, Borland International merilis Delphi 2 untuk windows

    95/NT. Dan kemudian dalam tahun-tahun berikutnya, Borland International

    merilis beberapa versi pengembangan Delphi yang memiliki tambahan fitur

    baru dibandingkan dengan versi sebelumnya.

    2.7 Kelebihan dari Delphi

    1. Komunitas pengguna yang besar pada Usenet maupun web.

    1. Dapat mengkompilasi menjadi single executable, memudahkan

    distribusi dan meminimalisir masalah yang terkait dengan

  • versioning.

    2. Banyaknya dukungan dari pihak ketiga terhadap VCL (biasanya

    tersedia berikut source codenya) ataupun tools pendukung

    lainnya (dokumentasi, tool debugging).

    3. Optimasi kompiler yang cukup cepat.

    4. Mendukung multiple platform dari source code yang sama

    2.8 Kekurangan dari Delphi

    1. Partial single vendor lock-in (Borland dapat menetapkan standar bahasa,

    kompatibilitas yang harus mengikutinya).

    2. Terbatasnya kamampuan portabilitas antar-platform OS (sebelum ada

    kylix).

    3. Akses pada platform dan library pihak ketiga membutuhkan file-file header

    yang diterjemahkan ke dalam bahasa pascal.

    4. Dokumentasi atas platform dan teknik-teknik yang menyertainya sulit

    ditemukan dalam bahasa pascal (contoh akses COM dan Win32)

    BAB III

    PERANCANGAN DAN DESAIN SISTEM

    3.1. DESKRIPSI SISTEM

    Pada bab III ini akan dijelaskan software bisa membaca plat nomor

    kendaraan (mobil atau motor). Tujuan dari pembuatan software ini yang

    dengan bantuan Delphi 7 dan neural network adalah untuk membaca dan

    menterjemahkan dari image plat motor menjadi sebuah karakter. Pada

    awalnya pengguna memasukkan input data berupa immage. image masukan

    adalah image yang sudah diolah melalui pemfilteran, pengurangan noise dan

  • cropping image. Sehingga di dapatkan image yang sempurna dengan format

    bitmap grayscale karena sistem hanya dibatasi untuk memproses citra bitmap

    grayscale.dengan grayscale ini bertujuan agar warna dari ketiga warna yang

    ada di jadikan satu warna.

    Flowchart berikut merupakan implementasi dari perubahan bentuk image

    plat motor menjadi sebuah karakter yang melalui proses penegasian

    kemudian dilanjutkan dengan proses croping citra dan terakhir dilakukan

    proses get image chars untuk merubah sebuah image plat motor menjadi

    sebuah karakter.

    form kali ini sistem akan meminta untuk memasukkan citra dengan format

    berkas bitmat grescale, yang kemudian akan dinegasi, setelah itu dicroping

    dan yang terahir dilakukan proses get image chars yang hasil akhirnya berupa

    sebuah teks atau karakter.

    3.3. DESAIN SISTEM

    Pada subbab ini akan dijelaskan mengenai desain aplikasi sistem untuk

    implementasi output. Desain aplikasi ini meliputi desain data, algoritma yang

    digunakan dalam sistem yang digambarkan dengan flowchart dan desain

    proses. Desain data berisikan penjelasan data yang diperlukan untuk dapat

    menerapkan metode negasi pada citra plat nomor polisi kendaraan bermotor.

    Desain data meliputi data masukan, data selama proses dan data keluaran.

    Desain proses antara lain menjelaskan tentang proses negasi pada citra plat

    nomor polisi kendaraan bermotor, yang selanjutnya dilakuka proses croping

    dan yang terakhir yakni proses get image chars yang hasil akhirnya akan

    berupa sebuah teks atau karakter dari sebuah citra plat nomor polisi

    kendaraan bermotor.

    3.2. Desain Data

    Data yang digunakan untuk implementasi perangkat lunak ini dibagi menjadi

    tiga bagian utama, yaitu data masukan, data selama proses dan data keluaran.

    1. Data Masukan

  • Data masukan adalah data yang digunakan selama proses perubahan citra

    plat nomor polisi kendaraan bermotor menjadi sebuah teks atau karakter.

    Data masukan yang pertama dari pengguna adalah arsip citra yang dipilih

    oleh pengguna. Pada sistem ini citra yang dimasukkan berupa arsip citra

    grayscale dengan format .bmp. 2. Data Selama Proses

    Pada tahapan proses negasi citra, dihasilkn citra yang telah dinegasikan yang

    kemudian citra tersebut diproses lagi dengan proses croping dengan tujuan

    membuang bagian-bagian yang sudah tidak diperlukan lagi.

    Setelah melewati dua proses tersebut maka pada tahapan terakhir dilakukan

    proses get image chars yang didalamnya juga terdapat proses penghilangan

    nois, kemudian hasil akhir yang didapatkan akan berupa sebuah teks atau

    karakter yang didapatkan dari sebuah citra plat nomor polisi kendaraan

    bermotor.

    3. Data Keluaran

    Data keluaran yang dihasilkan dari serngkaian proses diatas adalah berupa

    teks atau karakter yang didapatkan dari sebuah citra plat nomor polisi

    kendaraan bermotor dengan format font berupa arial.

    3.3 Sintak dari Pembacaan Plat Nomor Kendaraan

    unit Unit1;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls, ExtCtrls, ComCtrls, ExtDlgs, TeeProcs, TeEngine, Chart,

  • Series;

    type

    TForm1 = class(TForm)

    Button1: TButton;

    PageControl1: TPageControl;

    TabSheet1: TTabSheet;

    TabSheet2: TTabSheet;

    TabSheet3: TTabSheet;

    TabSheet4: TTabSheet;

    TabSheet5: TTabSheet;

    TabSheet6: TTabSheet;

    TabSheet7: TTabSheet;

    IOriginal: TImage;

    IMerah: TImage;

    IHijau: TImage;

    IBiru: TImage;

    IGC1: TImage;

    IGC2: TImage;

    IGC3: TImage;

    tgyuguhju: TTabSheet;

  • IGC: TImage;

    OpenPictureDialog1: TOpenPictureDialog;

    Chart1: TChart;

    Series1: TLineSeries;

    Chart2: TChart;

    Chart3: TChart;

    Series2: TLineSeries;

    Series3: TLineSeries;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    IHasil: TImage;

    Label6: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure IGC3MouseMove(Sender: TObject; Shift: TShiftState; X,

    Y: Integer);

    procedure IGC1MouseMove(Sender: TObject; Shift: TShiftState; X,

    Y: Integer);

    procedure IGC2MouseMove(Sender: TObject; Shift: TShiftState; X,

  • Y: Integer);

    procedure IOriginalMouseMove(Sender: TObject; Shift: TShiftState; X,

    Y: Integer);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    type

    TRGB32 = packed record

    B,G,R,A: Byte;

    end;

    TRGB32Array = packed array[0..MaxInt div SizeOf(TRGB32)-1] of TRGB32;

    PRGB32Array = ^TRGB32Array;

    var

    Form1: TForm1;

    implementation

  • uses Types;

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);

    var

    y,x,panjang,lebar : Integer;

    LineGC31,LineGC32,LineGC33,LineGC34,LineGC35,LineGC36,LineGC37,Lin

    eGC38,LineGC39,LineGC310,LineGC311,LineGC312,LineGC313,

    LineOriginal,LineMerah,LineBiru,LineHijau,LineGC1,LineGC2,LineGC3,Line

    IGC: PRGB32Array;

    jumlahGC1,jumlahGC2,jumlahGC3,K,n:integer;

    hajarhitamGC3,hajarputihGC3,lebarhitam,itungan,jumlahGC3sebelumnya:in

    teger;

    ilang,bener:boolean;

    rerataX:real;

    kotak:TRect;

    HasilBMP:TBitmap;

    begin

    if (OpenPictureDialog1.Execute)then

  • begin

    //membuat Image dengan format 32 bit

    IOriginal.Picture.LoadFromFile(OpenPictureDialog1.FileName);

    OpenPictureDialog1.Filter:='BMP files (*.bmp)|*.BMP|';// mendefinisikan

    file khusus berjenis .BMP

    IOriginal.Picture.Bitmap.PixelFormat := pf32bit;

    IMerah.Picture.Bitmap.PixelFormat := pf32bit;

    IBiru.Picture.Bitmap.PixelFormat := pf32bit;

    IHijau.Picture.Bitmap.PixelFormat := pf32bit;

    IGC1.Picture.Bitmap.PixelFormat := pf32bit;

    IGC2.Picture.Bitmap.PixelFormat := pf32bit;

    IGC3.Picture.Bitmap.PixelFormat := pf32bit;

    IGC.Picture.Bitmap.PixelFormat := pf32bit;

    //mendefinisikan gambar panjang dan lebar yang di analisa

    panjang := IOriginal.Width;

    lebar := IOriginal.Height;

    //mengisi image yang original ke Imerah sampai IGC

    IMerah.Picture.Assign(IOriginal.Picture);

    IHijau.Picture.Assign(IOriginal.Picture);

    IBiru.Picture.Assign(IOriginal.Picture);

    IGC1.Picture.Assign(IOriginal.Picture);

  • IGC2.Picture.Assign(IOriginal.Picture);

    IGC3.Picture.Assign(IOriginal.Picture);

    IGC.Picture.Assign(IOriginal.Picture);

    //membersihkan semua kondisi clear

    Series1.Clear;

    Series2.Clear;

    Series3.Clear;

    //menganalisa

    for y := 0 to lebar - 1 do //menganalisa looping dari Y =0 - Y = lebar -1

    begin

    LineOriginal := IOriginal.Picture.Bitmap.ScanLine[y];//mengambil

    gambar Iorigigal pada Y

    LineMerah := IMerah.Picture.Bitmap.ScanLine[y];

    LineBiru := IBiru.Picture.Bitmap.ScanLine[y];

    LineHijau := IHijau.Picture.Bitmap.ScanLine[y];

    LineGC1 := IGC1.Picture.Bitmap.ScanLine[y];

    LineGC2 := IGC2.Picture.Bitmap.ScanLine[y];

    LineGC3 := IGC3.Picture.Bitmap.ScanLine[y];

    LineIGC := IGC.Picture.Bitmap.ScanLine[y];

    //berapa banyak jumlah warna hitam pada

    jumlahGC1,jumlahGC2,jumlahGC3 dimulai dari 0

  • jumlahGC1:=0;

    jumlahGC2:=0;

    jumlahGC3:=0;

    //untuk mehilangkan noise hitam dan putih

    hajarhitamGC3:=0;

    hajarputihGC3:=0;

    ilang:=False;

    //Menganalisa nilai X dari 0 sampai panjang 1 pixel

    for x := 0 to panjang -1 do

    begin

    LineMerah[x].R:=LineOriginal[x].R;//membuat gambar original

    memjadi warna merah

    LineMerah[x].G:=0;

    LineMerah[x].B:=0;

    LineHijau[x].R:=0;

    LineHijau[x].G:=LineOriginal[x].G;//membuat gambar original

    memjadi warna Hijau

    LineHijau[x].B:=0;

    LineBiru[x].R:=0;

  • LineBiru[x].G:=0;

    LineBiru[x].B:=LineOriginal[x].B;//membuat gambar original

    memjadi warna Biru

    //

    if

    (LineOriginal[x].R

  • if LineIGC[x].R>180 then//jika pada Line

    begin

    LineGC1[x].R:=255;

    LineGC1[x].G:=255;

    LineGC1[x].B:=255;

    end;

    if LineIGC[x].R0 then

    if (LineGC1[x].R=0)and (LineGC1[x-1].R=255)then

    inc(jumlahGC1);

    //IGC2

    if LineIGC[x].R>125 then

    begin

    LineGC2[x].R:=255;

    LineGC2[x].G:=255;

  • LineGC2[x].B:=255;

    end;

    if LineIGC[x].R0 then

    if (LineGC2[x].R=0) and(LineGC2[x-1].R=255) then

    inc(jumlahGC2);

    //IGC3

    if (LineIGC[x].R>125) and (LineIGC[x].G>125) and

    (LineIGC[x].B>125) then

    begin //jika memenuhi syarat maka di buat putih

    LineGC3[x].R:=255;

    LineGC3[x].G:=255;

    LineGC3[x].B:=255;

    //syarat tambahan menghilangkan warna hitam di sebelah Kiri

    if abs(x-hajarhitamGC3)

  • begin

    for k:=0 to hajarhitamGC3 do

    begin

    LineGC3[K].R:=255;

    LineGC3[K].G:=255;

    LineGC3[K].B:=255;

    end;

    end;

    //menghilangkan warna hitam yang ditengah

    if hajarhitamGC3>50 then

    begin

    for k:=x-hajarhitamGC3 to x-1 do

    begin

    LineGC3[K].R:=255;

    LineGC3[K].G:=255;

    LineGC3[K].B:=255;

    end;

    end;

    //variabel hajar hitam dan putih

    hajarputihGC3:=0;

  • hajarhitamGC3:=0;

    //hajartitikGC3:=0;

    end;

    if (LineIGC[x].R

  • if x>0 then

    if (LineGC3[x].R=0) and (LineGC3[x-1].R=255) then

    inc(jumlahGC3);

    if hajarhitamGC3>200 then

    jumlahGC3:=0 ;

    if jumlahGC3>30 then

    begin

    for k:=0 to panjang-1 do

    begin

    LineGC3[K].R:=255;

    LineGC3[K].G:=255;

    LineGC3[K].B:=255;

    end;

    end;

    for k:=0 to panjang-3 do

    begin

    if (LineGC3[K].R=255) and (LineGC3[K+1].R=0) and

    (LineGC3[K+2].R=255) then

    begin

    LineGC3[K+1].R:=255;

  • LineGC3[K+1].G:=255;

    LineGC3[K+1].B:=255;

    end;

    end;

    end;

    if (jumlahGC3>20) then jumlahGC3:=0;

    if (jumlahGC3

  • LineGC33 := IGC3.Picture.Bitmap.ScanLine[y+3];

    LineGC34 := IGC3.Picture.Bitmap.ScanLine[y+4];

    LineGC35 := IGC3.Picture.Bitmap.ScanLine[y+5];

    LineGC36 := IGC3.Picture.Bitmap.ScanLine[y+6];

    LineGC37 := IGC3.Picture.Bitmap.ScanLine[y+7];

    LineGC38 := IGC3.Picture.Bitmap.ScanLine[y+8];

    LineGC39 := IGC3.Picture.Bitmap.ScanLine[y+9];

    LineGC310 := IGC3.Picture.Bitmap.ScanLine[y+10];

    LineGC311 := IGC3.Picture.Bitmap.ScanLine[y+11];

    LineGC312 := IGC3.Picture.Bitmap.ScanLine[y+12];

    LineGC313 := IGC3.Picture.Bitmap.ScanLine[y+13];

    bener:=false;

    itungan:=0;

    for x := 0 to panjang-1 do

    if not bener then

    begin

    if (x>=150) and (x

  • LineGC31[x].G:=255;

    LineGC31[x].B:=255;

    end;

    if (x290)then

    begin

    LineGC31[x].R:=255;

    LineGC32[x].R:=255;

    LineGC33[x].R:=255;

    LineGC34[x].R:=255;

    LineGC35[x].R:=255;

    LineGC36[x].R:=255;

    LineGC37[x].R:=255;

    LineGC38[x].R:=255;

    LineGC39[x].R:=255;

    LineGC310[x].R:=255;

    LineGC311[x].R:=255;

    LineGC312[x].R:=255;

    ///////////////////

    LineGC31[x].G:=255;

    LineGC32[x].G:=255;

    LineGC33[x].G:=255;

  • LineGC34[x].G:=255;

    LineGC35[x].G:=255;

    &n