Pengolahan Citra Digital Dengan Visual Basic

dokumen-dokumen yang mirip
Pembacaan dan Penampilan Image

Pre Processing. Memberikan gambaran jenis-jenis pre-processing

LISTING PROGRAM. 'byte of info Private Type RGBcolor R As Byte 'amount of red G As Byte 'amount of green B As Byte 'amount of blue End Type

Menampilkan List Komputer dan User-nya dalam Jaringan Intranet Dengan Fungsi WNet API

LISTING PROGRAM PADA MICROSOFT VISUAL BASIC 6.0

Pre Processing. Memberikan gambaran jenis-jenis pre-processing


BAB IV IMPLEMENTASI DAN PENGUJIAN. dan tempat implementasi dari perangkat lunak ini adalah sebagai berikut :

BAB II LANDASAN TEORI

Sistem Distribusi Data Melalui COM+ Dengan Visual Basic

WinCE API. API Fungsi & prosedur. Microsoft Windows Kode program

Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM

Kompensasi Pencahayaan

Fungsi Kelompok : yang dalam hal ini d adalah jumlah pixel yang terlibat dalam perhitungan rata-rata. Gambar 1 memperlihatkan dua buah skema

KONVERSI FORMAT CITRA RGB KE FORMAT GRAYSCALE MENGGUNAKAN VISUAL BASIC

E-Trick Visual Basic 6.0

LAMPIRAN. Kode Program Menu Utama

Pertemuan 11 type data, deklarasi variabel dan array 1.1 Mengenal Data dan Variabel

Lampiran A HELP EZTWAIN. crash.

1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6

MODUL IV PERULANGAN ( LOOPING )

BAB IV IMPLEMENTASI DAN PENGUJIAN. dan menjelasan berbagai hal yang berhubungan dengan pengujian.

Bab 4 Hasil dan Pembahasan

BAB IV IMPLEMENTASI DAN PENGUJIAN

Andy Prasetyo Utomo, S.Kom Pemrograman Terstruktur (Visual Basic 6.0)

BAB IV ANALISA DAN HASIL PENGUJIAN VARIABLE

1. Buka Visual Basic 6 sobat. Buat project baru, masukkan componen Microsoft Winsock Control 2. Masukkan coding berikut

TiPe Data Array di Vb.net. By Faizah,S.Kom

Program Studi Teknik Mesin S1

BAB-3 ATRIBUT PRIMITIF 2D

PENGGUNAAN DATA DAN VARIABEL KOMPUTER APLIKASI AKUNTANSI V PRODI AKUNTANSI - UNIKOM

SATUAN ACARA PERKULIAHAN MATA KULIAH ALGORITMA dan PEMROGRAMAN 1B(D3/TK) KODE : / SKS. Teknik Pembelajaran Kuliah mimbar dimana

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

MODUL 2 PERANCANGAN INTERFACE

BAB 3 SYSTEM AKSES WINDOWS

Jurnal Edik Informatika PENGATURAN LED MELALUI PORT PARALEL MENGGUNAKAN PEMROGRAMAN VISUAL

BAB III PERENCANAAN DAN REALISASI

Dahlan Sitompul

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K

Checksum CRC32. Tutorial ini di buat untuk yang belum ngerti ajah yah yang udah Master harap membenarkan

MODUL VI Penggunaan Struktur Kontrol Pengulangan

Penggandaan Ke Sistem

PENGGUNAAN DATA DAN VARIABEL

BAB II LANDASAN TEORI

Keterangan : Integer Long : tipe data untuk angka bulat Single, Double : tipe data untuk angka pecahan/desimal Currency : tipe data untuk angka mata

Penggunaan Struktur Kontrol Pengulangan. Adi Rachmanto,S.Kom Prodi Akuntansi - UNIKOM

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

VISUAL BASIC 6.0 PEMROGRAMAN KOMPUTER. Visual Basic

Algoritma Pemrograman 2 B

Modul Praktikum 6 Dasar-Dasar Teknologi Informasi dan Komunikasi. Aplikasi Spreadsheet Microsoft Excel (2) Validasi Data & Fungsi Terbilang

Private Sub cmdprint_click() WebBrowser1.ExecWB OLECMDID_PRINT,OLECMDEXECOPT_DODEFAULT End Sub


Dasar Pengolahan Citra (3)

Spesifikasi: Ukuran: 14x21 cm Tebal: 158 hlm Harga: Rp Terbit pertama: April 2005 Sinopsis singkat:

DASAR. Sigit Purnomo. Abstrak. Pendahuluan. Pembahasan. pemrograman. tidak. pengguna untuk VBA. yang. Application. dasar. Copyright

Gambar 8.1. Dialog Menu Editor.

BAB IV IMPLEMENTASI 4.1. IMPLEMENTASI

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Lampiran A. Program Visualisasi Cuaca Otomatis

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

BAB III Struktur Program

GEOVISI GIS TEXTBOOKS SERIES : BUKU SERI PEMROGRAMAN SISTEM INFORMASI GEOGRAFIS DENGAN MAPINFO MAPBASIC

Menjelaskan variabel aksi sebagai data string nilai,hasil dan simpan sebagai data double.

LISTING PROGRAM. Script Menu Utama Pada Game Tebak Kata

LISTING PROGRAM. Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Krisna D. Octovhiana. 1.1 Mengenal Struktur Kontrol.

Sistem Computer Vision Berbasis Metode Position Averaging Point untuk Pemilah Ikan Lele

BAB 1 PENDAHULUAN. untuk mengirimkan pesan, tetapi juga bisa menggunakan layanan yang tersedia di

MODUL-MODUL PRAKTIKUM VB.

BAB 2 LANDASAN TEORI

Suatu proses untuk mengubah sebuah citra menjadi citra baru sesuai dengan kebutuhan melalui berbagai cara.

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB V PROSEDUR DAN FUNGSI

BAB III PERANCANGAN SISTEM. Secara garis besar rangkaian pengendali peralatan elektronik dengan. blok rangkaian tampak seperti gambar berikut :

Modul Praktikum Ke-2

Variabel, Tipe Data, dan Operator. Oleh : Edi Sugiarto, S.Kom, M.Kom

Krisna D. Octovhiana. 1.1 Mengenal Data dan Variabel.

Memahami Proyek-Proyek Visual Basic dan Dasar-Dasar Visual Basic Code

Variabel merupakan tempat untuk menyimpan nilai sementara dari suatu perhitungan. Untuk mendeklarasikan sebuah variabel digunakan pernyataan :

BAB 1 PENDAHULUAN. Grafika komputer merupakan salah satu topik dalam bidang informatika.

LAMPIRAN A: LISTING PROGRAM

VBSCRIPT TUTORIAL. 2. MEMASUKKAN KODE VBSCRIPT KE DALAM HALAMAN HTML Kode VBScript ditulis didalam pasangan tag <SCRIPT>.

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

Pertemuan ke-3. Statemen input/output Struktur Kontrol Keputusan

Bentuk umum penulisan rumusannya, adalah sebagai berikut :

APLIKASI PENGAMANAN DATA TEKS PADA CITRA BITMAP DENGAN MENERAPKAN METODE LEAST SIGNIFICANT BIT (LSB)

V. MENGENAL VARIABEL KONSTANTA TIPE DATA DAN OPERATOR DALAM VISUAL BASIC

VISUAL BASIC 6.0 SETYO BUDI, M.KOM

BAB IV IMPLEMENTASI DAN PENGUJIAN


Krisna D. Octovhiana. 1.1 Apa itu Array?

STMIK GI MDP. Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011


STRUKTUR KENDALI PERULANGAN

Transkripsi:

Pengolahan Citra Digital Dengan Visual Basic Artikel ini telah dipublikasikan pada majalah Mikrodata Vol. 8 Series 17, Agustus 2002. Agus Kurniawan agusk@cs.ui.ac.id http://blog.aguskurniawan.net Pendahuluan Pengolahan citra digital merupakan salah topik yang menarik baik kalangan mahasiswa, peneliti ataupun professional sehingga wajar kalau topik mengenai pengolahan citra digital atau lebih dikenal dengan Digital Image Processing dijadikan segabai topik tersendiri yang berbeda dengan komputer grafik. Pada artikel ini akan dibahas bagaimana kita melakukan pengolahan citra digital dengan memanfaatkan fungsi GDI API dan Visual Basic 6 Pemrograman GDI Untuk memanfaatkan GDI maka kita dapat menggunakan Win32 API untuk mengakses. Objek GDI itu sendiri tersimpan dalam file gdi32.dll. Berikut ini beberapa code untuk mengakses GDI API dengan Visual Basic Private Declare Function BitBlt Lib "gdi32" (ByVal hdestdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nwidth As Long, ByVal nheight As Long, ByVal hsrcdc As Long, ByVal xsrc As Long, ByVal ysrc As Long, ByVal dwrop As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hobject As Long) As Long Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hinst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hobject As Long) As Long Private Declare Function GetTickCount Lib "kernel32" () As Long Gambar yang akan digunakan dalam aplikasi yang akan dibuat bertipe bitmap 24 bit yang mempunyai struktur sebagai berikut Private Type BITMAP bmtype As Long bmwidth As Long bmheight As Long bmwidthbytes As Long bmplanes As Integer bmbitspixel As Integer bmbits As Long End Type Serta beberapa konstanta-konstanta yang membantu 1 H a l a m a n

Const IMAGE_BITMAP As Long = 0 Const LR_LOADFROMFILE As Long = &H10 Const LR_CREATEDIBSECTION As Long = &H2000 Const LR_DEFAULTCOLOR As Long = &H0 Const LR_COLOR As Long = &H2 Menampilkan Gambar Untuk menampilkan gambar dengan menggunakan GDI API maka kita dapat menggunakan fungsi BitBlt dengan memasukan data byte dari gambar tersebut BitmapImage = GenerateDC(App.Path & "\Gambar.bmp", hbm) If BitmapImage = Null Then Exit Sub End If GetObjectAPI hbm, Len(bm), bm ReDim OriginalBits(1 To bm.bmwidthbytes, 1 To bm.bmheight) BitmapWidth = bm.bmwidth BitmapHeight = bm.bmheight GetBitmapBits hbm, bm.bmwidthbytes * bm.bmheight, OriginalBits(1, 1) BitBlt Me.hdc, 0, 0, BitmapWidth, BitmapWidth, BitmapImage, 0, 0, vbsrccopy Contoh bentuk tampilan aplikasi pengolahan citra digital seperti pada gambar 1. Gambar 1. Tampilan aplikai pengolahan citra digital Gambar Gray scale Metode yang paling sederhana untuk mengubah gambar digital menjadi gambar gray scale yaitu menjumlah ketiga warna merah, biru dan hijau kemudian membaginya dengan nilai 3 2 H a l a m a n

For I = 1 To bm.bmwidthbytes Step 3 Next I TempColor = OriginalBits(I, J) TempColor = TempColor + OriginalBits(I + 1, J) TempColor = TempColor + OriginalBits(I + 2, J) TempColor = TempColor / 3 ByteArray(I, J) = TempColor ByteArray(I + 1, J) = TempColor ByteArray(I + 2, J) = TempColor Hasil running dari seperti pada gambar 3 dan gambar 2 adalah gambar aslinya Gambar 2. Gambar anak bebek Gambar 3. Hasil proses gray scale 3 H a l a m a n

Filter Inverse Metode yang sering dipakai adalah mengurangi nilai warna sebesar 255 terhadap warna yang dimiliki untuk semua warna. Berikut ini metodenya: For I = 1 To bm.bmwidthbytes Step 3 Next I ByteArray(I, J) = 255 - OriginalBits(I, J) ByteArray(I + 1, J) = 255 - OriginalBits(I + 1, J) ByteArray(I + 2, J) = 255 - OriginalBits(I + 2, J) Hasil filter inverse dapat dilihat pada gambar 4. Gambar 4. Hasil proses filter inverse Filter Warna Filter warna adalah filter untuk mengubah gambar ke arah warna tertentu atau bisa juga ke arah warna random. Cara yang dipakai yaitu setting kedua warna dari biru, hijau dan merah menjadi 0 sehingga tinggal satu warna yang akan mempengaruhi bentuk warna gambar. Misalkan untuk filter warna hijau: For i = 1 To bm.bmwidthbytes Step 3 ByteArray(i, J) = 0 ByteArray(i + 1, J) = OriginalBits(i + 1, J) ByteArray(i + 2, J) = 0 Hasil dari filter warna hijau seperti terlihat pada gambar 5. 4 H a l a m a n

Gambar 5. Hasil dari proses filter warna hijau Dengan cara yang sama, untuk filter warna biru sebagai berikut: For i = 1 To bm.bmwidthbytes Step 3 ByteArray(i, J) = OriginalBits(i, J) ByteArray(i + 1, J) = 0 ByteArray(i + 2, J) = 0 Next I Sehingga hasil dari filter warna biru seperti pada gambar 6 dan hasil filter warna merah juga dapat dilihat pada gambar 7. Gambar 6. Hasil dari filter warna biru 5 H a l a m a n

Gambar 7. Hasil dari filter warna merah Ripple Ripple itu sendiri merupakan salah efek gambar dengan memanfaatkan pola sinusiodal dimana masing-masing warna pada pixel dilakukan proses perhitungan sinusiodal. Berikut ini code untuk membuat efek ripple dengan fungsi Sin dan periodenya sebesar 1/5 For i = 1 To BitmapWidth TempValue = i + Sin(i / 5) * Val(txtRipple.Text) If TempValue > BitmapWidth Then RippleTable(i) = BitmapWidth ElseIf TempValue < 1 Then RippleTable(i) = 1 Else RippleTable(i) = TempValue End If ReDim ByteArray(1 To bm.bmwidthbytes, 1 To bm.bmheight) For i = 1 To bm.bmwidthbytes Step 3 ByteArray(i, J) = OriginalBits(i, RippleTable(J)) ByteArray(i + 1, J) = OriginalBits(i + 1, RippleTable(J)) ByteArray(i + 2, J) = OriginalBits(i + 2, RippleTable(J)) 6 H a l a m a n

Gambar 8. Hasil dari efek ripple sebesar 5. Brightness Brightness juga merupakan salah satu efek gambar untuk membuat terang gambar sebesar nilai yang diinginkan. Metode yang sering dipakai adalah dengan mengalihkan semua nilai warna dengan nilai brightness yang diinginkan. Berikut ini contoh code-nya: For i = 0 To 255 TempValue = i * Val(txtBright.Text) If TempValue > 255 Then BrightTable(i) = 255 Else BrightTable(i) = TempValue End If ReDim ByteArray(1 To bm.bmwidthbytes, 1 To bm.bmheight) For i = 1 To bm.bmwidthbytes Step 3 ByteArray(i, J) = BrightTable(OriginalBits(i, J)) ByteArray(i + 1, J) = BrightTable(OriginalBits(i + 1, J)) ByteArray(i + 2, J) = BrightTable(OriginalBits(i + 2, J)) Hasil dari efek brightness ini dapat dilihat pada gambar 9 dimana nilai brightness sebesar 5 7 H a l a m a n

Gambar 9. Hasil dari efek brightness sebesar 5 Referensi MSDN library, GDI Programming 8 H a l a m a n