Anda di halaman 1dari 37

Tutorial Digital Image Processing Using Visual Basic 6.

. 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<LineOriginal[x].G)and(LineOriginal[x].G<LineOriginal[x]
.B)and

(LineOriginal[x].R<50) and (LineOriginal[x].G<200)and


(LineOriginal[x].B<200)or(LineOriginal[x].R<90)and

(LineOriginal[x].G - LineOriginal[x].R<35) and (LineOriginal[x].B -


LineOriginal[x].G<35) then

begin //jika memenuhi syarat (if) akan di hitamkan

LineIGC[x].R:=0;

LineIGC[x].G:=0;

LineIGC[x].B:=0;

end

else //jika tidak memenuhi syarat (if)

begin

LineIGC[x].R:=255;

LineIGC[x].G:=255;

LineIGC[x].B:=255;

end;

//IGC1
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].R<=180 then

begin

LineGC1[x].R:=0;

LineGC1[x].G:=0;

LineGC1[x].B:=0;

end;

//mengetahui grafik

if x>0 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].R<=125 then

begin

LineGC2[x].R:=0;

LineGC2[x].G:=0;

LineGC2[x].B:=0;

end;

if x>0 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)<500 then
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<=50) and (LineIGC[x].G<=50) and


(LineIGC[x].B<=50) then

begin //jika syarat terpenuhi maka di buat hitam

LineGC3[x].R:=0;

LineGC3[x].G:=0;

LineGC3[x].B:=0;

inc(hajarhitamGC3);

if abs(x-panjang)<2 then

begin

for k:=panjang-hajarhitamGC3 to panjang-2 do

begin

LineGC3[K].R:=255;

LineGC3[K].G:=255;

LineGC3[K].B:=255;

end;

end;

end;
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<10) then jumlahGC3:=0;

Series1.AddXY(y,jumlahGC1);

Series2.AddXY(y,jumlahGC2);

end;

y:=0;

n:=0;

rerataX:=0;

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

repeat

begin

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

LineGC31 := IGC3.Picture.Bitmap.ScanLine[y+1];

LineGC32 := IGC3.Picture.Bitmap.ScanLine[y+2];
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<290)and(LineGC3[x].R=255) and


(LineGC31[x].R=0) and (LineGC32[x].R=255)then

begin

LineGC31[x].R:=255;
LineGC31[x].G:=255;

LineGC31[x].B:=255;

end;

if (x<150) or (x>290)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

Anda mungkin juga menyukai