LISTING PROGRAM PADA MICROSOFT VISUAL BASIC 6.0

dokumen-dokumen yang mirip
Pre Processing. Memberikan gambaran jenis-jenis pre-processing

BAB IV IMPLEMENTASI DAN PENGUJIAN

Pembacaan dan Penampilan Image

Pengolahan Citra Digital Dengan Visual Basic

Pre Processing. Memberikan gambaran jenis-jenis pre-processing

Kompensasi Pencahayaan

E-Trick Visual Basic 6.0

Lampiran A HELP EZTWAIN. crash.

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

Lampiran A. Program Visualisasi Cuaca Otomatis

MODUL IV PERULANGAN ( LOOPING )

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

PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Praktikum Pengolahan Citra Digital

LISTING PROGRAM. Public Declare Sub PortOut Lib "io.dll" (ByVal Port As Integer, ByVal Value As Byte)

BAB V PROSEDUR DAN FUNGSI

DAFTAR PUSTAKA. Multimedia Control, Steven Holzner. Diakses pada tanggal 14/09/2011 Dari

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

Praktekum VB 6.0 I. KOTAK PESAN. Contoh syntax kotak pesan

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

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

DISUSUN OLEH : : Friska Rosalina NIM :

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

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

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

Digitalisasi Citra. Digitalisasi. Citra analog / objek / scene. Citra digital

BAB IV IMPLEMENTASI DAN PENGUJIAN

MODUL 2 Variabel, Val, If tunggal dan If bersarang + case

LAMPIRAN A. Private Sub Command4_Click() MsgBox "isi pesan ini sesuka anda!", vbexclamation, "Tentang" End Sub

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

Program absen dengan menggunakan visual basic 6.0

BAB III PEMBAHASAN MASALAH

1. Rancangan Input Program Form Menu Utama Form Data Barang [ Input Barang ]

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

LAMPIRAN. Kode Program Menu Utama

Algoritma Pemrograman 2 B

LISTING PROGRAM FORM MENU UTAMA. Private Sub Command1_Click() Unload Me Form2.Show End Sub. Private Sub Command3_Click() Form10.

Krisna D. Octovhiana. 1.1 Apa itu Array?

BAB IV IMPLEMENTASI DAN PENGUJIAN

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

PENGGUNAAN DATA DAN VARIABEL

Tutorial, Source code, Request Program Visual Basic

LISTING PROGRAM. Script Menu Utama Pada Game Tebak Kata

PROSEDUR & PARAMETER PROSEDUR

BAB IV Pemrograman Grafis

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

LISTING PROGRAM. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ShowInputForm End Sub

BAB III Struktur Program

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

Kartu Bimbingan Tugas Akhir Mahhasiswa

LAMPIRAN CODING PROGRAM FORM DISPLAY : Private Sub Cmd_Cancel_Click() End End Sub

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

MODUL 3 SELEKSI KONDISI

MODUL D :// Mahasiswa memahami konsep pembuatan database. Mahasiswa memahami konsep pembuatan program dasar aplikasi database

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

LAMPIRAN A: LISTING PROGRAM

Source Code Program. A. Form Utama. Dim IEWin As ciewindows

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

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

BAB III PERENCANAAN DAN REALISASI

MODUL IV PROCEDURE. [Private public static]sub namaprosedur (daftarargumen) End Sub

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB-3 ATRIBUT PRIMITIF 2D

VISUAL BASIC 6.0 SETYO BUDI, M.KOM

BAB III LANDASAN TEORI. muka yang bersifat grafis Graphical User Interface (GUI). Daripada menulis

KARTU BIMBINGAN TUGAS AKHIR MAHASISWA

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

Listing Program a. Form Login. Public LoginSucceeded As Boolean

Visual Basic 6.0 For Beginners

PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Praktikum Pengolahan Citra Digital

Modul Praktikum Ke-2

MODUL II. OBJECK, PROPERTY, METHOD dan EVENT

Krisna D. Octovhiana. 1.1 Mengenal Data dan Variabel.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Analisis Alokasi Memori Citra Bitmap 24 Bit

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

Krisna D. Octovhiana. 1.1 Mengenal Struktur Kontrol.

PEMROGRAMAN VISUAL BASIC

Visual Basic 6.0 For Beginners

[16] Definisi Traksi. Tersedia di Desember [17] Datasheet HT12E Series of Encoders.

Cara Membuat Web Browser Sendiri dengan VB 6.0

Listing Program. 1. Loading. 2. Home. Option Explicit. Dim isplash As Integer. Private Sub Timer1_Timer() On Error Resume Next. isplash = isplash + 5

Struktur Data II. Bekerja Dengan Form.

PEMROGRAMAN GRAFIS (VISUAL BASIC)

BAB III LANDASAN TEORI

MODUL 2 SELECTION & LOOPING PADA FORM

STRUKTUR KENDALI PERULANGAN

VISUAL BASIC 6.0 SETYO BUDI, M.KOM.

MODUL-MODUL PRAKTIKUM VB.

Field Tipe Data Size Keterangan userid Text 12 Primary key namauser Text 30 - password Text 8 - akses Text 10 -

VISUAL PROGRAMMING 2. bangdanu.wordpress.com. By: Danu Wira Pangestu

Transkripsi:

LISTING PROGRAM PADA MICROSOFT VISUAL BASIC 6.0 1. Program pada Form 1 (Program Utama) Dim imagearray() As Byte Dim oldx As Long, oldy As Long Dim pnum As Long, ptot As Long Private Declare Function capcreatecapturewindow Lib "avicap32.dll" Alias "capcreatecapturewindowa" (ByVal lpszwindowname As String, ByVal dwstyle As Long, ByVal x As Long, ByVal y As Long, ByVal nwidth As Long, ByVal nheight As Long, ByVal hwndparent As Long, ByVal nid As Long) As Long Private Sub Command1_Click() Picture2.Picture = Picture1.Picture Private Sub Command2_Click() STARTCAM Load Progress Progress.Show Progress.start Unload Progress Command2.Enabled = False Command3.Enabled = True Picture1.AutoRedraw = True Picture2.AutoRedraw = True A-1

Timer1.Enabled = True Private Sub Command3_Click() STOPCAM Command3.Enabled = False Command2.Enabled = True Picture1.Picture = LoadPicture("nosignal.bmp") Picture2.Picture = LoadPicture("nosignal.bmp") Private Sub Command5_Click() SavePicture Picture1.Picture, App.Path + "\Detected\" + Format(Date, "ddmmyyyy") + " " + Format(Time, "hhmmss") + ".bmp" Picture3.Picture = Picture1.Picture For o = 1 To Picture2.ScaleWidth For p = 1 To Picture2.ScaleHeight warna = Picture2.Point(o, p) r = warna And RGB(255, 0, 0) g = Int((warna And RGB(0, 255, 0)) / 256) B = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) xr = 1.6 * r xg = 1.6 * g xb = 1.6 * B Picture2.PSet (o, p), RGB(xr, xg, xb) A-2

p o Private Sub Command6_Click() For i = 1 To Picture2.ScaleWidth - 1 For j = 1 To Picture2.ScaleHeight - 1 warna = Picture2.Point(i, j) r1 = warna And RGB(255, 0, 0) g1 = Int((warna And RGB(0, 255, 0)) / 256) b1 = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) warna = Picture3.Point(i, j) r2 = warna And RGB(255, 0, 0) g2 = Int((warna And RGB(0, 255, 0)) / 256) b2 = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) r = r1 - r2 If r > 255 Then r = 255 If r < 0 Then r = 0 g = g1 - g2 If g > 255 Then g = 255 If g < 0 Then g = 0 B = b1 - b2 If B > 255 Then B = 255 If B < 0 Then B = 0 Picture5.PSet (i, j), RGB(r, g, B) A-3

i j For kl = 1 To Picture5.ScaleWidth - 1 For mn = 1 To Picture5.ScaleHeight - 1 warna = Picture5.Point(kl, mn) r = warna And RGB(255, 0, 0) g = Int((warna And RGB(0, 255, 0)) / 256) B = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) x = (r + g + B) / 3 If x < 102 Then x = 0 Else x = 255 Picture5.PSet (kl, mn), RGB(x, x, x) mn kl Private Sub Command7_Click() For i = 1 To Picture3.ScaleWidth For j = 1 To Picture3.ScaleHeight warna = Picture3.Point(i, j) r = warna And RGB(255, 0, 0) g = Int((warna And RGB(0, 255, 0)) / 256) B = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) xr = 2 * r xg = 2 * g xb = 2 * B Picture3.PSet (i, j), RGB(xr, xg, xb) A-4

j i n = 0 x = Picture5.ScaleWidth y = Picture5.ScaleHeight For brs = 1 To y For klm = 1 To x wrn = Picture5.Point(klm, brs) k = wrn And RGB(255, 0, 0) l = Int((wrn And RGB(0, 255, 0)) / 256) m = Int(Int((wrn And RGB(0, 0, 255)) / 256) / 256) If (k > 200) And (l > 200) And (m > 200) Then gwrn = Picture3.Point(klm, brs) gk = gwrn And RGB(255, 0, 0) gl = Int((gwrn And RGB(0, 255, 0)) / 256) gm = Int(Int((gwrn And RGB(0, 0, 255)) / 256) / 256) y = 0.257 * gk + 0.504 * gl + 0.098 * gm + 16 cb = 0.148 * gk - 0.291 * gl + 0.439 * gm + 128 cr = 0.439 * gk - 0.368 * gl - 0.071 * gm + 128 If y > 53.697 And y < 234.261 And cb > 131.428 And cb < 203.42 And cr > 126.095 And cr < 183.67 Then k = 255 l = 255 m = 255 n = n + 1 Else k = 0 l = 0 A-5

m = 0 End If Picture4.PSet (klm, brs), RGB(k, l, m) klm brs Private Sub Command8_Click() For i = 1 To Picture4.ScaleWidth For j = 1 To Picture4.ScaleHeight warna = Picture4.Point(i, j) r1 = warna And RGB(255, 0, 0) g1 = Int((warna And RGB(0, 255, 0)) / 256) b1 = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) warna = Picture5.Point(i, j) r2 = warna And RGB(255, 0, 0) g2 = Int((warna And RGB(0, 255, 0)) / 256) b2 = Int(Int((warna And RGB(0, 0, 255)) / 256) / 256) r = r1 Or r2 If r > 255 Then r = 255 If r < 0 Then r = 0 g = g1 Or g2 If g > 255 Then g = 255 If g < 0 Then g = 0 B = b1 Or b2 If B > 255 Then B = 255 If B < 0 Then B = 0 Picture6.PSet (i, j), RGB(r, g, B) A-6

Picture6.Refresh j Picture6.Refresh i Private Sub Command9_Click() Dim dib As New cdib dib.getimagedata Picture6, imagearray '------------------------------------- Dim tmpheight As Long, tmpwidth As Long tmpheight = Picture6.ScaleHeight tmpwidth = Picture6.ScaleWidth '------------------------------------- Dim x As Long, y As Long Dim xy() As Long ReDim xy(0 To tmpwidth * 3) For x = 0 To tmpwidth * 3 xy(x) = x * 3 '------------------------------------- Dim temp As Long ReDim imbw(tmpwidth - 1, tmpheight - 1) 'mendapatkan gambar hitam dan putih For x = 0 To tmpwidth - 1 For y = 0 To tmpheight - 1 temp = imagearray(xy(x), y) A-7

If temp = 255 Then temp = 1 imbw(x, y) = temp '==[Algoritma Pelabelan Pada Komponen Terkoneksi]=== Dim n As Long, min As Long, i As Long, j As Long, rep As Long Dim label() As Long, mask(4) As Long, bscan As Long ReDim label(tmpwidth - 1, tmpheight - 1) If IsNumeric(Text1.Text) = False Then Exit Sub rep = Text1.Text - 1 Dim amount As Long amount = 1000 For j = 0 To rep n = 1 fwdscan: For x = 1 To tmpwidth - 2 For y = 1 To tmpheight - 2 mask(0) = label(x - 1, y - 1) mask(1) = label(x, y - 1) mask(2) = label(x + 1, y - 1) mask(3) = label(x - 1, y) mask(4) = label(x, y) If imbw(x, y) = 1 Then temp = mask(0) Or mask(1) Or mask(2) Or mask(3) If temp = 0 Then A-8

label(x, y) = n: bscan = 1 n = n + 1 Else min = mask(0) For i = 1 To 4 If min = 0 Then min = mask(i): GoTo cont If mask(i) < min And mask(i) <> 0 Then min = mask(i) cont: label(x, y) = min: bscan = 1 End If End If backscan: For x = 1 To tmpwidth - 2 For y = 1 To tmpheight - 2 If label((tmpwidth - 1) - x, (tmpheight - 1) - y) <> 0 Then mask(0) = label((tmpwidth - 1) - (x - 1), (tmpheight - 1) - (y - 1)) mask(1) = label((tmpwidth - 1) - x, (tmpheight - 1) - (y - 1)) mask(2) = label((tmpwidth - 1) - (x + 1), (tmpheight - 1) - (y - 1)) mask(3) = label((tmpwidth - 1) - (x - 1), (tmpheight - 1) - y) mask(4) = label((tmpwidth - 1) - x, (tmpheight - 1) - y) A-9

min = mask(0) For i = 1 To 4 If min = 0 Then min = mask(i): GoTo cont2 If mask(i) < min And mask(i) <> 0 Then min = mask(i) cont2: label((tmpwidth - 1) - x, (tmpheight - 1) - y) = min End If finish: Dim count() As Long ReDim count(amount, 4) Dim m As Long For y = 0 To tmpheight - 1 For x = 0 To tmpwidth - 1 count(label(x, y), 0) = count(label(x, y), 0) + 1 'mengatur berapa banyak dari jumlah label 'no' yang telah didapat If count(label(x, y), 1) = 0 Then count(label(x, y), 1) = x: count(label(x, y), 2) = x: _ count(label(x, y), 3) = y: count(label(x, y), 4) = y 'mengatur semua min & max koordinat x dan y untuk min 1.. A-10

'update setiap koordinat If x < count(label(x, y), 1) And count(label(x, y), 1) <> 0 Then count(label(x, y), 1) = x 'update coordinate x min (if x < than the prev value) If x > count(label(x, y), 2) And count(label(x, y), 2) <> 0 Then count(label(x, y), 2) = x ' If y < count(label(x, y), 3) And count(label(x, y), 3) <> 0 Then count(label(x, y), 3) = y ' If y > count(label(x, y), 4) And count(label(x, y), 4) <> 0 Then count(label(x, y), 4) = y ' '===[ BOUNDING BOX ]=== 'MEMBEDAKAN KOTAK yang terdeteksi dan yang berlabel OBJEK For i = 0 To amount If count(i, 0) <> 0 And count(i, 0) > 15 And i <> 0 Then 'jika label menemukan tidak nol,> 5 dan label tidak '0 ' m = m + 1 Picture6.Line (count(i, 1), (tmpheight - 1) - count(i, 3))-(count(i, 2), (tmpheight - 1) - count(i, 4)), vbred, B End If A-11

Label1.Caption = "Human found : " & m ptot = m Private Sub Form_Load() Picture1.Picture = LoadPicture("nosignal.bmp") Picture2.Picture = LoadPicture("nosignal.bmp") Private Sub Timer1_Timer() 'mendapatkan gambar dari kamera SendMessage mcaphwnd, GET_FRAME, 0, 0 SendMessage mcaphwnd, COPY, 0, 0 Picture1.Picture = Clipboard.GetData: Clipboard.Clear Sub STOPCAM() DoEvents: SendMessage mcaphwnd, DISCONNECT, 0, 0 Sub STARTCAM() 'Memulai kamera untuk mengambil gambar mcaphwnd = capcreatecapturewindow("webcamcapture", 0, 0, 0, 320, 240, Me.hwnd, 0) DoEvents SendMessage mcaphwnd, CONNECT, 0, 0 'menghubungkan kamera A-12

2. Program pada ClassModule Option Explicit Private Type BITMAPINFOHEADER '40 bytes bisize As Long biwidth As Long biheight As Long biplanes As Integer bibitcount As Integer bicompression As Long End Type Private Type RGBQUAD Red As Byte Green As Byte Blue As Byte End Type 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 A-13

'------------------------------------------ ' Tambahan (Deklarasi) '------------------------------------------ Private Type BITMAPINFO bmheader As BITMAPINFOHEADER bmcolors(0 To 255) As RGBQUAD End Type Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hobject As Long, ByVal ncount As Long, ByRef lpobject As Any) As Long 'pemanggilan fungsi API Private Declare Function GetDIBits Lib "gdi32" (ByVal hdc As Long, ByVal hbitmap As Long, ByVal nstartscan As Long, ByVal nnumscans As Long, lpbits As Any, lpbi As BITMAPINFO, ByVal wusage As Long) As Long '------------------------------------------- ' Fungsi Tambahan '------------------------------------------- Public Function GetImageData(ByRef SrcPictureBox As PictureBox, ByRef ImageData() As Byte) 'Deklarasi beberapa variabel yang diperlukan tipe bitmap Dim bm As BITMAP Dim bmi As BITMAPINFO Dim arraywidth As Long 'Mengisi BMI (Bitmap informasi variabel) dengan semua data yang sesuai A-14

bmi.bmheader.bisize = 40 'Ukuran, dalam satuan byte, dari header (selalu 40) bmi.bmheader.biplanes = 1 'Jumlah plane (selalu satu untuk contoh ini) bmi.bmheader.bibitcount = 24 'Bit per pixel (selalu 24 untuk contoh ini) bmi.bmheader.bicompression = 0 'Kompresi: standar / tidak ada 'Hitung ukuran tipe bitmap (dalam bytes) Dim bmlen As Long bmlen = Len(bm) 'Mendapatkan informasi picturebox dari SrcPictureBox dan memasukkannya ke dalam variabel 'bm' GetObject SrcPictureBox.Image, bmlen, bm arraywidth = (bm.bmwidth * 3) - 1 arraywidth = arraywidth + (bm.bmwidth Mod 4) 'Membangun ukuran array dengan benar ReDim ImageData(0 To arraywidth, 0 To bm.bmheight - 1) 'Selesai membangun 'BMI' variabel kita ingin melakukan panggilan langsung ke GetDIBits (yang sama kami gunakan di atas) bmi.bmheader.biwidth = bm.bmwidth bmi.bmheader.biheight = bm.bmheight mengisi variabel 'BMI', dengan menggunakan GetDIBits untuk mengambil data 'SrcPictureBox dan memasukkannya ke dalam ImageData () array menggunakan pengaturan dalam 'BMI' A-15

GetDIBits SrcPictureBox.hdc, SrcPictureBox.Image, 0, bm.bmheight, ImageData(0, 0), bmi, 0 End Function 3. Program pada Modul Camera Public Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wmsg As Long, ByVal wparam As Long, lparam As Any) As Long Public mcaphwnd As Long Public Const CONNECT As Long = 1034 Public Const DISCONNECT As Long = 1035 Public Const GET_FRAME As Long = 1084 Public Const COPY As Long = 1054 Public Const WM_CAP_SET_VIDEOFORMAT = &H400 + 45 A-16