Aplikasi Kamera Web Untuk Menggerakan Gambar Objek Dengan Jari Tangan.

(1)

i U niversit as Krist e n M a ra na t ha Aplikasi Kamera Web Untuk Menggerakkan Gambar Objek Dengan Jari

Tangan

Victor Robbin/ 0322084

Jl. Cibogo 1 No. 18, Bandung 40164 Telp 085220776556 Email: kakek_oet@yahoo.co.id

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

ABSTRAK

Selain untuk menampilkan gambar fisik dan pergerakan suatu objek, kamera web dapat dikembangkan untuk aplikasi interaktif. Salah satu aplikasi interaktif kamera web adalah merekam objek diam dan objek yang bergerak, selanjutnya pergerakan dari objek yang bergerak dan objek yang diam tersebut di proses dengan sistem pengolahan citra di komputer.

Pada Tugas Akhir ini dibuat aplikasi kamera web untuk menggerakkan gambar objek dengan jari tangan. Kamera web digunakan untuk merekam posisi jari tangan. PC berfungsi untuk mengolah data dengan bahasa pemrograman microsoft visual basic 6.0. Hasil pengolahan data dari PC digunakan untuk menggerakkan gambar objek

Hasil pengujian dalam Tugas Akhir ini menunjukkan bahwa pengujian dilakukan sebanyak 5 kali pada masing-masing kondisi dengan latar tidak memantulkan cahaya, untuk gambar objek digerakan vertikal dan horizontal dengan tingkat keberhasilan 100% dan untuk gambar objek digerakan diagonal dengan tingkat keberhasilan rata-rata 70%, sedangkan pada latar yang memantulkan cahaya menunjukkan tidak ada gambar objek yang bergerak dari keseluruhan arah pergerakan gambar objek, hal ini menunjukkan program tidak berhasil mendeteksi irisan.


(2)

ii U niversit as Krist e n M a ra na t ha Webcam Application To Move Object Picture With Finger

Victor Robbin/ 0322084

Jl. Cibogo 1 No. 18, Bandung 40164 Telp 085220776556 Email: kakek_oet@yahoo.co.id

Electrical Engineering, Faculty of Engineering, Maranatha Christian University Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

ABSTRACT

Besides to present drawing physical and movement an object, webcam can be developed for interactive application. One of interactive application of webcam is record silent object and peripatetic object, then movement from peripatetic object and the silent object in process with image processing system in computer.

In this final assessment, webcam application to move object picture with finger is discussed. Webcam applied to record position of finger. PC functions to process data with Microsoft Visual Basic 6.0 programming language. Result of data processing from PC applied to move object picture.

Result of examination in this final assessment showed that examination is done counted 5 times at each condition with background does not bounce light, for object picture movement to be vertical and horizontal shows level of success is 100% and for object picture movement to be diagonal shows level of success of average is 70%, while at background bouncing light to show there is no peripatetic object picture from overall of movement direction of object picture, this thing shows the program fail to detect slice.


(3)

iii U nive rsit a s K rist e n M a ra nat ha

DAFTAR ISI

LEMBAR PENGESAHAN SURAT PERNYATAAN KATA PENGANTAR

ABSTRAK... i

ABSTRACT.... ... ii

DAFTAR ISI... ...iii

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... x

BAB I PENDAHULUAN ... 1

I.1 Latar Belakang... 1

I.2 Perumusan Masalah ... 1

I.3 Tujuan ... 2

I.4 Pembatasan Masalah... 2

I.5 Sistematika Pembahasan ... 2

BAB II DASAR TEORI... 3

II.1 Pengolahan Citra ... 3

II.2 Sistem Warna ... 3

II.2.1 Red Green Blue (RGB) ... 4

II.3 Deteksi Tepi ... 4

II.4 Mengubah Citra Berwarna Menjadi Gray-Scale... 9

II.5 Citra Biner... 9

II.6 Microsoft Visual Basic 6.0 ... 10

II.6.1 Form Designer ... 11

II.6.2 Menu Toolbar... 11

II.6.3 Toolbox ... 11

II.6.4 Project Explorer ... 11


(4)

iv U nive rsit a s K rist e n M a ra nat ha

II.6.6 Syntax-Syntax Yang Digunakan ... 12

II.6.6.1 Variabel... 12

II.6.6.2 Struktur Kontrol... 12

II.6.6.2.1 Struktur Kontrol For...Next ... 12

II.6.6.2.2 Struktur Kontrol IF ... 13

II.6.7 Object Picture ... 13

BAB III PERANCANGAN DAN REALISASI... 14

III.1 Perangkat Keras ... 14

III.1.1 Personal Computer (PC)... 14

III.1.2 Kamera Web ... 14

III.2 Perangkat Lunak ... 15

III.2.1 Perancangan Perangkat Lunak Utama... 15

III.3 Perancangan Jalannya Aplikasi ... 17

III.4 Tampilan Perangkat Lunak Utama ... 17

III.5 Memasukkan Gambar Hasil Capture Ke PictureBox ... 20

III.6 Deteksi Tepi Metoda Sobel ... 20

III.7 Scan Bagian-Bagian Tepi Pada Gambar Objek ... 22

III.7.1 Scan Bagian Tepi Atas Dari Kiri Ke Tengah Pada Gambar Objek ... 22

III.7.2 Scan Bagian Tepi Atas Dari Tengah Ke Kanan Pada Gambar Objek ... 23

III.7.3 Scan Bagian Tepi Bawah Dari Kiri Ke Tengah Pada Gambar Objek... 24

III.7.4 Scan Bagian Tepi Bawah Dari Tengah Ke Kanan Pada Gambar Objek .... 25

III.7.5 Scan Bagian Tepi Kiri Dari Atas Ke Tengah Pada Gambar Objek ... 27

III.7.6 Scan Bagian Tepi Kiri Dari Tengah Ke Bawah Pada Gambar Objek... 28

III.7.7 Scan Bagian Tepi Kanan Dari Atas Ke Tengah Pada Gambar Objek ... 29

III.7.8 Scan Bagian Tepi Kanan Dari Tengah Ke Bawah Pada Gambar Objek.... 30

III.8 Syarat Untuk Menggerakkan Gambar Objek ... 31

III.9 Memeriksa Irisan... 31

III.10 Arah Pergerakan Gambar Objek ... 34

III.10.1 Arah Pergerakan Gambar Objek Untuk Bergerak Ke Kiri ... 34

III.10.2 Arah Pergerakan Gambar Objek Untuk Bergerak Ke Atas ... 35


(5)

v U niversit as Krist e n M a ra na t ha

III.10.4 Arah Pergerakan Gambar Objek Untuk Bergerak Ke Bawah ... 38

III.10.5 Arah Pergerakan Gambar Objek Untuk Bergerak Ke Kiri Atas ... 39

III.10.6 Arah Pergerakan Gambar Objek Untuk Bergerak Ke Kanan Atas ... 40

III.10.7 Arah Pergerakan Gambar Objek Untuk Bergerak Ke Kanan Bawah ... 41

III.10.8 Arah Pergerakan Gambar Objek Untuk Bergerak Ke Kiri Bawah ... 42

III.11 Mengakhiri Jalannya Perangkat Lunak Utama ... 42

BAB IV DATA PENGAMATAN DAN ANALISA... 44

IV.1 Pengujian Perangkat Keras... 44

IV.1.1 Pengujian Pada Kamera Web ... 44

IV.2 Pengujian Perangkat Lunak... 45

IV.2.1 Tampilan Perangkat Lunak Utama Pada Visual Basic ... 45

IV.2.2 Pengujian Pergerakan Gambar Objek ... 45

IV.2.2.1 Pengujian Pergerakan Gambar Objek Dengan Latar Tidak Memantulkan Cahaya... 45

IV.2.2.2 Pengujian Pergerakan Gambar Objek Dengan Latar Memantulkan Cahaya... 47

IV.3 Data Pengamatan Hasil Pengujian Pergerakan Gambar Objek ... 49

IV.3.1 Data Pengamatan Hasil Pengujian Pergerakan Gambar Objek Dengan Latar Tidak Memantulkan Cahaya ... 49

IV.3.2 Data Pengamatan Hasil Pengujian Pergerakan Gambar Objek Dengan Latar Memantulkan Cahaya ... 50

IV.4 Analisa Hasil Pengujian Pergerakan Gambar Objek ... 50

BAB V KESIMPULAN DAN SARAN... 52

V.1 Kesimpulan ... 52

V.2 Saran... 52


(6)

vi U nive rsit a s K rist e n M a ra nat ha LAMPIRAN

LAMPIRAN A

Program pada Microsoft Visual Basic 6.0... A-1 LAMPIRAN B


(7)

vii U nive rsit a s K rist e n M a ra nat ha

DAFTAR GAMBAR

Gambar II.1 Sistem warna RGB... 4

Gambar II.2 Hasil Proses Pendeteksian Tepi ... 5

Gambar II.3 Titik-Titik Yang Dilibatkan Dalam Perhitungan Gradien Pada Metoda Robert ... 5

Gambar II.4 Contoh Hasil Pengeteksian Tepi Dengan Metoda Robert... 6

Gambar II.5 Contoh Hasil Pengeteksian Tepi Dengan Metoda Prewitt ... 7

Gambar II.6 Contoh Hasil Pengeteksian Tepi Dengan Metoda Sobel ... 8

Gambar II.7 Microsoft Visual Basic 6.0 ... 9

Gambar II.8 Tampilan dasar Visual Basic 6.0 ... 10

Gambar III.1 Blok Diagram Sistem ... 14

Gambar III.2 Blok Diagram Alir Sistem Kerja Keseluruhan... 16

Gambar III.3 Tampilan Perangkat Lunak Utama ... 18

Gambar III.4 Blok Diagram Alir Deteksi Tepi Metoda Sobel ... 21

Gambar III.5 Scan Bagian Tepi Atas Dari Kiri Ke Tengah Pada Gambar Objek. 22 Gambar III.6 Blok Diagram Alir Scan Bagian Tepi Atas Dari Kiri Ke Tengah Pada Gambar Objek ... 23

Gambar III.7 Scan Bagian Tepi Atas Dari Tengah Ke Kanan Pada Gambar Objek ... 23

Gambar III.8 Blok Diagram Alir Scan Bagian Tepi Atas Dari Tengah Ke Kanan Pada Gambar Objek ... 24

Gambar III.9 Scan Bagian Tepi Bawah Dari Kiri Ke Tengah Pada Gambar Objek ... 25

Gambar III.10 Blok Diagram Alir Scan Bagian Tepi Bawah Dari Kiri Ke Tengah Pada Gambar Objek ... 25

Gambar III.11 Scan Bagian Tepi Bawah Dari Tengah Ke Kanan Pada Gambar Objek... 26

Gambar III.12 Blok Diagram Alir Scan Bagian Tepi Bawah Dari Tengah Ke Kanan Pada Gambar Objek ... 26 Gambar III.13 Scan Bagian Tepi Kiri Dari Atas Ke Tengah Pada Gambar Objek27


(8)

viii U nive rsit as Krist e n M ara nat ha Gambar III.14 Blok Diagram Alir Scan Bagian Tepi Kiri Dari Atas Ke Tengah Pada Gambar Objek ... 27 Gambar III.15 Scan Bagian Tepi Kiri Dari Tengah Ke Bawah Pada Gambar Objek

... 28 Gambar III.16 Blok Diagram Alir Scan Bagian Tepi Kiri Dari Tengah Ke Bawah Pada Gambar Objek ... 28 Gambar III.17 Scan Bagian Tepi Kanan Dari Atas Ke Tengah Pada Gambar Objek

... 29 Gambar III.18 Blok Diagram Alir Scan Bagian Tepi Kanan Dari Atas Ke Tengah Pada Gambar Objek ... 29 Gambar III.19 Scan Bagian Tepi Kanan Dari Tengah Ke Kanan Pada Gambar Objek... 30 Gambar III.20 Blok Diagram Alir Scan Bagian Tepi Kanan Dari Tengah Ke Bawah Pada Gambar Objek ... 30 Gambar III.21 Blok Diagram Alir Memeriksa Irisan ... 32 Gambar III.22 Blok Diagram Alir Arah Pergerakan Gambar Objek Untuk

Bergerak Ke Kiri... 36 Gambar III.23 Blok Diagram Alir Arah Pergerakan Gambar Objek Untuk

Bergerak Ke Atas... 36 Gambar III.24 Blok Diagram Alir Arah Pergerakan Gambar Objek Untuk

Bergerak Ke Kanan... 36 Gambar III.25 Blok Diagram Alir Arah Pergerakan Gambar Objek Untuk

Bergerak Ke Bawah ... 36 Gambar III.26 Blok Diagram Alir Arah Pergerakan Gambar Objek Untuk

Bergerak Ke Kiri Atas... 36 Gambar III.27 Blok Diagram Alir Arah Pergerakan Gambar Objek Untuk

Bergerak Ke Kanan Atas... 36 Gambar III.28 Blok Diagram Alir Arah Pergerakan Gambar Objek Untuk

Bergerak Ke Kanan Bawah ... 36 Gambar III.29 Blok Diagram Alir Arah Pergerakan Gambar Objek Untuk


(9)

ix U nive rsit a s K rist e n M a ra nat ha Gambar IV.1 Gambar Jari Tangan Hasil Capture Dengan Kamera Web... 44 Gambar IV.2 Tampilan Perangkat Lunak Utama Pada Visual Basic ... 45


(10)

x U niversit as Krist e n M a ra na t ha

DAFTAR TABEL

Tabel III.1 Objek, Properti dan Keterangan ... 18 Tabel III.2 Syarat Untuk Menggerakkan Gambar Objek... 31 Tabel IV.1 Pengujian Pergerakan Gambar Objek Dengan Latar Tidak

Memantulkan Cahaya ... 46 Tabel IV.2 Pengujian Pergerakan Gambar Objek Dengan Latar Memantulkan Cahaya... 47 Tabel IV.3 Persentase Keberhasilan Gambar Objek Digerakkan Dengan Latar Yang Tidak Memantulkan Cahaya ... 49 Tabel IV.4 Persentase Keberhasilan Gambar Objek Digerakkan Dengan Latar Yang Memantulkan Cahaya ... 50


(11)

LAMPIRAN A

Listing Program


(12)

Lampiran

A-1 U niversit as Krist e n M a ra na t ha

Listing Program pada Microsoft Visual Basic 6.0

Dim h1(3, 3), h2(3, 3) As Single

Private Sub Form_Load()

h1(1, 1) = -1: h1(1, 2) = 0: h1(1, 3) = 1 h1(2, 1) = -2: h1(2, 2) = 0: h1(2, 3) = 2 h1(3, 1) = -1: h1(3, 2) = 0: h1(3, 3) = 1 For i = 1 To 3

For j = 1 To 3 h2(i, j) = h1(j, i) Next j

Next i End Sub

Private Sub Timer1_Timer() Picture2.Visible = False Call TWAIN_LogFile(1) Call TWAIN_SetHideUI(1) Call TWAIN_SetIndicators(0)

If TWAIN_OpenSource("WebCam Vista") <> 0 Then Call TWAIN_SetPixelType(2)

Call TWAIN_SetXferCount(1) ' If you can't use Me.hwnd, pass 0:

Call TWAIN_AcquireToFilename(Me.hwnd, "c:\image.bmp") End If

If TWAIN_LastErrorCode() <> 0 Then

Call TWAIN_ReportLastError("Unable to scan.") End If

Picture1.Picture = LoadPicture("C:\image.bmp")

Dim x(500, 500) As Integer n1 = 0

For i = 1 To Picture1.ScaleWidth Step 15 n1 = n1 + 1

n2 = 0

For j = 1 To Picture1.ScaleHeight Step 15 warna = Picture1.Point(i, j)

r = warna And RGB(255, 0, 0)

G = Int((warna And RGB(255, 0, 0)) / 256)

b = Int(Int((warna And RGB(255, 0, 0)) / 256) / 256) n2 = n2 + 1

x(n1, n2) = Int((r + G + b) / 3)

Picture1.PSet (i, j), RGB(x(n1, n2), x(n1, n2), x(n1, n2)) Next j


(13)

Lampiran

A-2 U niversit as Krist e n M a ra na t ha For i = 1 To n1

For j = 1 To n2 z1 = 0

z2 = 0

For u1 = -1 To 1 For u2 = -1 To 1

z1 = z1 + h1(u1 + 2, u2 + 2) * x(i + u1, j + u2) z2 = z2 + h2(u1 + 2, u2 + 2) * x(i + u1, j + u2) Next u2

Next u1

z = Int(Abs(z1 + z2)) If z > 255 Then z = 255

Picture1.PSet ((i - 1) * 15 + 1, (j - 1) * 15 + 1), RGB(z, z, z) Next j

Next i

‘Scan Bagian Tepi Atas Dari Kiri Ke Tengah Pada Objek For i = Picture2.Left To (Picture2.Left + Picture2.Width / 2) j = Picture2.Top

warna = Picture1.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)) s = (r + G + b) / 3

If s > 128 Then s = 1 Else s = 0 If s = 1 Then tanda_kanan_atas1 = 1 Next i

‘Scan Bagian Tepi Atas Dari Tengah Ke Kanan Pada Objek

For i = (Picture2.Left + Picture2.Width / 2) To (Picture2.Left + Picture2.Width) j = Picture2.Top

warna = Picture1.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)) s = (r + G + b) / 3

If s > 128 Then s = 1 Else s = 0 If s = 1 Then tanda_kanan_atas2 = 1 Next i

‘Scan Bagian Tepi Bawah Dari Kiri Ke Tengah Pada Objek For i = Picture2.Left To (Picture2.Left + Picture2.Width / 2) j = Picture2.Top + Picture2.Height

warna = Picture1.Point(i, j) r = warna And RGB(255, 0, 0)

G = Int((warna And RGB(0, 255, 0)) / 256)


(14)

Lampiran

A-3 U niversit as Krist e n M a ra na t ha s = (r + G + b) / 3

If s > 128 Then s = 1 Else s = 0

If s = 1 Then tanda_kanan_bawah1 = 1 Next i

‘Scan Bagian Tepi Bawah Dari Tengah Ke Kanan Pada Objek

For i = (Picture2.Left + Picture2.Width / 2) To (Picture2.Left + Picture2.Width) j = Picture2.Top + Picture2.Height

warna = Picture1.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)) s = (r + G + b) / 3

If s > 128 Then s = 1 Else s = 0

If s = 1 Then tanda_kanan_bawah2 = 1 Next i

‘Scan Bagian Tepi Kiri Dari Atas Ke Tengah Pada Objek For j = Picture2.Top To (Picture2.Top + Picture2.Height / 2) i = Picture2.Left

warna = Picture1.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)) s = (r + G + b) / 3

If s > 128 Then s = 1 Else s = 0 If s = 1 Then tanda_atas_kiri1 = 1 Next j

‘Scan Bagian Tepi Kiri Dari Tengah Ke Bawah Pada Objek

For j = (Picture2.Top + Picture2.Height / 2) To (Picture2.Top + Picture2.Height) i = Picture2.Left

warna = Picture1.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)) s = (r + G + b) / 3

If s > 128 Then s = 1 Else s = 0 If s = 1 Then tanda_atas_kiri2 = 1 Next j

‘Scan Bagian Tepi Kanan Dari Atas Ke Tengah Pada Objek For j = Picture2.Top To (Picture2.Top + Picture2.Height / 2) i = Picture2.Left + Picture2.Width

warna = Picture1.Point(i, j) r = warna And RGB(255, 0, 0)


(15)

Lampiran

A-4 U niversit as Krist e n M a ra na t ha b = Int(Int((warna And RGB(0, 0, 255)) / 256 / 256))

s = (r + G + b) / 3

If s > 128 Then s = 1 Else s = 0 If s = 1 Then tanda_atas_kanan1 = 1 Next j

‘Scan Bagian Tepi Kanan Dari Tengah Ke Bawah Pada Objek

For j = (Picture2.Top + Picture2.Height / 2) To (Picture2.Top + Picture2.Height) i = Picture2.Left + Picture2.Width

warna = Picture1.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)) s = (r + G + b) / 3

If s > 128 Then s = 1 Else s = 0 If s = 1 Then tanda_atas_kanan2 = 1 Next j

Label1.Caption = tanda_kanan_atas1 Label2.Caption = tanda_kanan_bawah1 Label3.Caption = tanda_atas_kanan1 Label4.Caption = tanda_atas_kiri1 Label5.Caption = tanda_kanan_atas2 Label6.Caption = tanda_kanan_bawah2 Label7.Caption = tanda_atas_kanan2 Label8.Caption = tanda_atas_kiri2

If tanda_kanan_atas1 = 0 And tanda_kanan_atas2 = 1 And tanda_kanan_bawah1 = 0 And tanda_kanan_bawah2 = 1 And tanda_atas_kanan1 = 0 And

tanda_atas_kanan2 = 0 And tanda_atas_kiri1 = 0 And tanda_atas_kiri2 = 0 Then Command1_Click

If tanda_kanan_atas1 = 0 And tanda_kanan_atas2 = 0 And tanda_kanan_bawah1 = 0 And tanda_kanan_bawah2 = 0 And tanda_atas_kanan1 = 0 And

tanda_atas_kanan2 = 1 And tanda_atas_kiri1 = 0 And tanda_atas_kiri2 = 1 Then Command2_Click

If tanda_kanan_atas1 = 1 And tanda_kanan_atas2 = 0 And tanda_kanan_bawah1 = 1 And tanda_kanan_bawah2 = 0 And tanda_atas_kanan1 = 0 And

tanda_atas_kanan2 = 0 And tanda_atas_kiri1 = 0 And tanda_atas_kiri2 = 0 Then Command3_Click

If tanda_kanan_atas1 = 0 And tanda_kanan_atas2 = 0 And tanda_kanan_bawah1 = 0 And tanda_kanan_bawah2 = 0 And tanda_atas_kanan1 = 1 And

tanda_atas_kanan2 = 0 And tanda_atas_kiri1 = 1 And tanda_atas_kiri2 = 0 Then Command4_Click

If tanda_kanan_atas1 = 0 And tanda_kanan_atas2 = 0 And tanda_kanan_bawah1 = 0 And tanda_kanan_bawah2 = 1 And tanda_atas_kanan1 = 0 And

tanda_atas_kanan2 = 1 And tanda_atas_kiri1 = 0 And tanda_atas_kiri2 = 0 Then Command5_Click


(16)

Lampiran

A-5 U niversit as Krist e n M a ra na t ha If tanda_kanan_atas1 = 0 And tanda_kanan_atas2 = 0 And tanda_kanan_bawah1 = 1 And tanda_kanan_bawah2 = 0 And tanda_atas_kanan1 = 0 And

tanda_atas_kanan2 = 0 And tanda_atas_kiri1 = 0 And tanda_atas_kiri2 = 1 Then Command6_Click

If tanda_kanan_atas1 = 1 And tanda_kanan_atas2 = 0 And tanda_kanan_bawah1 = 0 And tanda_kanan_bawah2 = 0 And tanda_atas_kanan1 = 0 And

tanda_atas_kanan2 = 0 And tanda_atas_kiri1 = 1 And tanda_atas_kiri2 = 0 Then Command7_Click

If tanda_kanan_atas1 = 0 And tanda_kanan_atas2 = 1 And tanda_kanan_bawah1 = 0 And tanda_kanan_bawah2 = 0 And tanda_atas_kanan1 = 1 And

tanda_atas_kanan2 = 0 And tanda_atas_kiri1 = 0 And tanda_atas_kiri2 = 0 Then Command8_Click

End Sub

‘Arah Pergerakan Objek Untuk Bergerak Ke Kiri Private Sub Command1_Click()

For i = Picture2.Left To (Picture2.Left + Picture2.Width) j = Picture2.Top

warna = Picture1.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)) x = (r + G + b) / 3

If x > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses Else GoTo akhir proses:

Picture2.Visible = True GoTo scan1

akhir: Next i

scan1:

For a = Picture2.Left To (Picture2.Left + Picture2.Width) c = Picture2.Top + Picture2.Height

warna = Picture1.Point(a, c) 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 > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses2 Else GoTo akhir2 proses2:

Picture2.Visible = True GoTo kesimpulan akhir2:


(17)

Lampiran

A-6 U niversit as Krist e n M a ra na t ha kesimpulan:

Picture2.Left = Picture2.Left - (Picture2.Left + Picture2.Width - i) Picture2.Visible = True

End Sub

‘Arah Pergerakan Objek Untuk Bergerak Ke Atas Private Sub Command2_Click()

For j = Picture2.Top To (Picture2.Top + Picture2.Height) i = Picture2.Left

warna = Picture1.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)) x = (r + G + b) / 3

If x > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses Else GoTo akhir proses:

Picture2.Visible = True GoTo scan2

akhir: Next j

scan2:

For c = Picture2.Top To (Picture2.Top + Picture2.Height) a = Picture2.Left + Picture2.Width

warna = Picture1.Point(a, c) 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 > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses2 Else GoTo akhir2 proses2:

Picture2.Visible = True GoTo kesimpulan akhir2:

Next c

kesimpulan:

Picture2.Top = Picture2.Top - (Picture2.Top + Picture2.Height - j) Picture2.Visible = True

End Sub

‘Arah Pergerakan Objek Untuk Bergerak Ke Kanan Private Sub Command3_Click()

For i = Picture2.Left To (Picture2.Left + Picture2.Width) j = Picture2.Top


(18)

Lampiran

A-7 U niversit as Krist e n M a ra na t ha warna = Picture1.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)) x = (r + G + b) / 3

If x > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses Else GoTo akhir proses:

Picture2.Visible = True GoTo scan1

akhir: Next i

scan1:

For a = Picture2.Left To (Picture2.Left + Picture2.Width) c = Picture2.Top + Picture2.Height

warna = Picture1.Point(a, c) 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 > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses2 Else GoTo akhir2 proses2:

Picture2.Visible = True GoTo kesimpulan

akhir2: Next a

kesimpulan:

Picture2.Left = Picture2.Left + (i - Picture2.Left) Picture2.Visible = True

End Sub

‘Arah Pergerakan Objek Untuk Bergerak Ke Bawah Private Sub Command4_Click()

For j = Picture2.Top To (Picture2.Top + Picture2.Height) i = Picture2.Left

warna = Picture1.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)) x = (r + G + b) / 3

If x > 128 Then x = 1 Else x = 0


(19)

Lampiran

A-8 U niversit as Krist e n M a ra na t ha proses:

Picture2.Visible = True GoTo scan2

akhir: Next j

scan2:

For c = Picture2.Top To (Picture2.Top + Picture2.Height) a = Picture2.Left + Picture2.Width

warna = Picture1.Point(a, c) 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 > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses2 Else GoTo akhir2 proses2:

Picture2.Visible = True GoTo kesimpulan

akhir2: Next c

kesimpulan:

Picture2.Top = Picture2.Top + (j - Picture2.Top) Picture2.Visible = True

End Sub

‘Arah Pergerakan Objek Untuk Bergerak Ke Kiri Atas Private Sub Command5_Click()

For i = Picture2.Left To (Picture2.Left + Picture2.Width) j = Picture2.Top + Picture2.Height

warna = Picture1.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)) x = (r + G + b) / 3

If x > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses1 Else GoTo akhir1 proses1:

Picture2.Visible = True GoTo scan2

akhir1: Next i scan2:


(20)

Lampiran

A-9 U niversit as Krist e n M a ra na t ha For c = Picture2.Top To (Picture2.Top + Picture2.Height)

a = Picture2.Left + Picture2.Width warna = Picture1.Point(a, c) 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 > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses2 Else GoTo akhir2 proses2:

Picture2.Visible = True GoTo kesimpulan

akhir2: Next c

kesimpulan:

Picture2.Top = Picture2.Top - ((Picture2.Top + Picture2.Height - c) / 4) Picture2.Left = Picture2.Left - ((Picture2.Left + Picture2.Width - i) / 4) Picture2.Visible = True

End Sub

‘Arah Pergerakan Objek Untuk Bergerak Ke Kanan Atas Private Sub Command6_Click()

For j = Picture2.Top To (Picture2.Top + Picture2.Height) i = Picture2.Left

warna = Picture1.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)) x = (r + G + b) / 3

If x > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses Else GoTo akhir proses:

Picture2.Visible = True GoTo scan2

akhir: Next j

scan2:

For a = Picture2.Left To (Picture2.Left + Picture2.Width) c = Picture2.Top + Picture2.Height

warna = Picture1.Point(a, c) r = warna And RGB(255, 0, 0)

G = Int((warna And RGB(0, 255, 0)) / 256)


(21)

Lampiran

A-10 U nive rsit a s K rist e n M a ra nat ha x = (r + G + b) / 3

If x > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses2 Else GoTo akhir2 proses2:

Picture2.Visible = True GoTo kesimpulan

akhir2: Next a

kesimpulan:

Picture2.Top = Picture2.Top - ((Picture2.Top + Picture2.Height - j) / 4) Picture2.Left = Picture2.Left + ((Picture2.Left + Picture2.Width - a) / 4) Picture2.Visible = True

End Sub

‘Arah Pergerakan Objek Untuk Bergerak Ke Kanan Bawah Private Sub Command7_Click()

For i = Picture2.Left To (Picture2.Left + Picture2.Width) j = Picture2.Top

warna = Picture1.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) x = (r + G + b) / 3

If x > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses Else GoTo akhir proses:

Picture2.Visible = True GoTo scan2

akhir: Next i

scan2:

For c = Picture2.Top To (Picture2.Top + Picture2.Height) a = Picture2.Left

warna = Picture1.Point(a, c) 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 > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses2 Else GoTo akhir2 proses2:

Picture2.Visible = True GoTo kesimpulan


(22)

Lampiran

A-11 U nive rsit a s K rist e n M a ra nat ha akhir2:

Next c

kesimpulan:

Picture2.Top = Picture2.Top + ((Picture2.Top + Picture2.Height - c) / 4) Picture2.Left = Picture2.Left + ((Picture2.Left + Picture2.Width - i) / 4) Picture2.Visible = True

End Sub

‘Arah Pergerakan Objek Untuk Bergerak Ke Kiri Bawah Private Sub Command8_Click()

For i = Picture2.Left To (Picture2.Left + Picture2.Width) j = Picture2.Top

warna = Picture1.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)) x = (r + G + b) / 3

If x > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses Else GoTo akhir proses:

Picture2.Visible = True GoTo scan2

akhir: Next i

scan2:

For c = Picture2.Top To (Picture2.Top + Picture2.Height) a = Picture2.Left + Picture2.Width

warna = Picture1.Point(a, c) 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 > 128 Then x = 1 Else x = 0

If x = 1 Then GoTo proses2 Else GoTo akhir2 proses2:

Picture2.Visible = True GoTo kesimpulan

akhir2: Next c

kesimpulan:

Picture2.Top = Picture2.Top + ((Picture2.Top + Picture2.Height - c) / 4) Picture2.Left = Picture2.Left - ((Picture2.Left + Picture2.Width - i) / 4)


(23)

Lampiran

A-12 U nive rsit a s K rist e n M a ra nat ha Picture2.Visible = True

End Sub

Private Sub Command9_Click() End

End Sub

Modules :


(24)

Lampiran

A-13 U nive rsit a s K rist e n M a ra nat ha

LAMPIRAN B

EZTwain Pro

B-1


(25)

Lampiran


(26)

Lampiran

A-15 U nive rsit a s K rist e n M a ra nat ha

TW AI N _ Log File

void TWAIN_LogFile(int fLog);

EZTwain can writ e a qui t e det ailed log of i t s act ivit y, inclu ding ever y TWAI N call it m ak es and t he r esult . Log out put goes t o c:\ e zt w a in .log . You can use TWAI N_Set LogFolder t o direct t he log file t o anot her dir ect or y.

TWAI N_LogFile( 0) close log file and t urn off logging

TWAI N_LogFile( 1) open log file ( if not alr eady) an d st ar t logging.

I f logging is alr eady t ur n ed on , TWAI N_ LogFile( 1) flu shes t h e logfile to disk so prior ou t pu t won ’t be lost in a subsequent cr ash.

TW AI N _ Se t H ide U I / TW AI N _ Ge t H id e UI

void TWAIN_SetHideUI(int fHide); int TWAIN_GetHideUI(void);

Th ese f unct ions con t r ol t he 'hide sour ce user inter face' flag. This flag is ini tially FALSE( 0) , but if you set it n on - zer o, t h en when a sour ce is en abled it will be ask ed t o hide it s u ser in t er face. Not e t h is is a r equest - som e sour ces will ignor e it .

See: How To: Hide t h e Dat asou r ce User I nt erf ace.

I f t he user int er face is hi dden, you will probably want t o set at least som e of t he basi c acqu isition par am et er s your self – see Negot iat in g Scanning

Par am et er s . See also: HasCon t r oll ableUI

TW AI N _ Se t I n d ica t or s

int TWAIN_SetIndicators(BOOL bVisible)

Tell t h e sour ce t o show ( hide) progr ess indicat or s durin g acquisition.

TW AI N _ Ope n Sou r ce

int TWAIN_OpenSource(LPCSTR pzName);

Opens t he Sour ce wi t h th e given nam e.

I f t hat sou rce is alr eady open , does n ot hing an d r et ur ns TRUE. I f anot h er sour ce is open , closes i t an d at t em pt s t o open t he specified sour ce. Will load an d open t h e Sour ce Man ager if needed.

I f t hi s call r et ur n s TRUE, TWAI N is in St at e 4 ( TWAI N_SOURCE_OPEN)

TW AI N _ Se t Pix e lTy p e

int TWAIN_SetPixelType(int nPixType);

Tr y t o set t he cur r en t pi xel t ype for acqui si tion .

Th e sou r ce m ay select t his pixel t ype, but don't assum e i t will. This fun ct ion should be used in place of t he older

TWAI N_Set Cur r en t PixelType. Pix e l Ty pe Code s ( TW PT_ * )


(27)

Lampiran

A-16 U nive rsit a s K rist e n M a ra nat ha

TW AI N _ Se t Xf e r Cou n t

int TWAIN_SetXferCount(int nXfers);

Tell t h e Sou r ce t he nu m ber of im ages t h e applicat ion will accep t . nXfer s = - 1 m eans any num ber ( t he def ault , when a device is open ed.) Ret ur ns: 1 for success, 0 for failur e.

TW AI N _ Acq uir e ToFile na m e

int TWAIN_AcquireToFilename(HWND hwndApp, LPCSTR pszFile);

Acquir e an i m age an d save it t o a file. I f t he filen am e cont ains a st an dard ex t en sion ( .bm p, .j pg, .j peg, . t if, .ti ff, .png, .pdf, .gif, .dcx) t hen t h e file is saved in t h e i m plied f or m at . Ot h er wise t he fil e is saved in the default save for m at – see TWAI N_ Set Sav eFor m at .

I f pszFile is NULL or an em pt y st r ing, t he u ser is pr om pt ed for t he file nam e an d for m at wit h a st andar d Sav e Fil e dialog. Only availabl e and appr opriat e for m at s ar e pr esen t ed in t he Save File dialog. I f you use t his feat u r e, you can call TWAI N_Last Ou t pu t File t o obt ain t h e filenam e.

See also TWAI N_Acquir e below. Ret ur n val ues:

0 success.

- 1 t he Acquir e failed.

- 2 file open er r or ( invalid pat h or n am e, or access denied) - 3 in valid DI B, or im age incom pat ible with file form at , or ... - 4 writing failed, possi bly ou t pu t devi ce is full.

- 10 user can cell ed File Sav e dialog

Th e m inim al u se of EZTwain i s t o call t hi s funct ion wit h null ar gum en t s:

ErrCode = TWAIN_AcquireToFilename(0, “”);

TW AI N _ La st Er r or Cod e

int TWAIN_LastErrorCode(void);

Ret ur n t h e m ost r ecent EZTwain error code, one of t he EZTEC_ codes – See t he EZTwai n declar at ion file for your progr am m in g language, or r efer t o ezt w ai n.h .

TW AI N _ Re por t La st Er r or

void TWAIN_ReportLastError(LPCSTR pzMsg);

Li ke TWAI N_ Er ror Box, bu t if som e det ail s ar e av ailable from TWAI N about t h e last failur e, t hey ar e included in t he m essage box. This fun ction uses


(28)

1 Universitas Kristen Maranatha

BAB I

PENDAHULUAN

Bab ini membahas mengenai latar belakang, perumusan masalah, tujuan, pembatasan masalah, dan sistematika pembahasan Tugas Akhir.

I.1 Latar Belakang

Selain untuk menampilkan gambar fisik dan pergerakan suatu objek, kamera web dapat dikembangkan untuk aplikasi interaktif. Salah satu aplikasi interaktif kamera web adalah merekam objek diam dan objek yang bergerak, selanjutnya pergerakan dari objek yang bergerak dan objek yang diam tersebut di proses dengan sistem pengolahan citra di komputer.

Ide yang diambil pada Tugas Akhir ini berasal dari aplikasi kamera web dalam game interaktif ”menusuk balon” yang disusun oleh Krisyunardi (0322140). Aplikasi kamera web dalam game interaktif ”menusuk balon” ini berintikan memecahkan gambar objek berupa balon dengan tongkat penusuk. Pada Tugas Akhir ini dibuat perangkat lunak aplikasi kamera web untuk menggerakkan gambar objek dengan jari tangan. Aplikasi kamera web ini berintikan menggerakkan gambar objek dengan jari tangan jika terjadi irisan antara gambar objek dengan jari tangan. Kamera web digunakan untuk merekam posisi jari tangan dan hasilnya di proses dengan sistem pengolahan citra di komputer, sehingga hasil akhirnya diperoleh pergerakan pada gambar objek.

Dalam mengidentifikasi jari tangan, metoda yang digunakan adalah metoda deteksi tepi. Pada pengerjaan Tugas Akhir ini, metoda deteksi tepi yang digunakan adalah metoda Sobel (Sobel Edge Detection). Hasil proses deteksi tepi ini diperoleh tepi-tepi dari objek yang direkam oleh kamera web yang akan digunakan untuk menggerakkan gambar objek.

I.2 Perumusan Masalah

Bagaimana membuat program pengidentifikasi pergerakan jari tangan yang ditangkap oleh kamera web dan dapat menggerakkan gambar objek?


(29)

Bab I Pendahuluan 2

Universitas Kristen Maranatha I.3 Tujuan

Merealisasikan perangkat lunak aplikasi kamera web untuk menggerakkan gambar objek dengan jari tangan.

I.4 Pembatasan Masalah

1. Membahas program aplikasi kamera web untuk menggerakkan gambar objek yang sesuai dengan pergerakan jari tangan.

2. Pendeteksi pergerakan jari hanya mengatur pergerakan satu gambar objek. 3. Latar yang digunakan hanya latar yang berwarna gelap, contoh: warna

hitam dan warna pada latar tidak sama dengan warna pada gambar objek. 4. Pencahayaan mendukung dalam mengidentifikasi pergerakan jari tangan. 5. Kecepatan pergerakan jari tangan harus pelan.

6. Bentuk gambar objek segi empat.

I.5 Sistematika Pembahasan

Sistematika pembahasan laporan tugas akhir ini disusun menjadi lima bab, yaitu sebagai berikut :

 Bab I : Pendahuluan

Bab ini membahas tentang latar belakang, perumusan masalah, tujuan penulisan, pembatasan masalah dan sistematika pembahasan.

 Bab II : Dasar Teori

Bab ini membahas tentang konsep dasar pengolahan citra, sistem warna, deteksi tepi, mengubah citra berwarna menjadi gray-scale, citra biner dan microsoft visual basic 6.0.

 Bab III : Perancangan dan Realisasi

Bab ini membahas tentang perancangan dan realisasi perangkat lunak aplikasi kamera web untuk menggerakan gambar objek dengan jari tangan.  Bab IV : Data Pengamatan dan Analisa

Bab ini akan membahas pengamatan, pengujian dan analisa perangkat lunak yang telah dirancang dan direalisasikan.

 Bab V : Kesimpulan dan Saran


(30)

52 Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan

Berdasarkan hasil pengujian pada Tugas Akhir ini, maka dapat disimpulkan beberapa hal sebagai berikut:

1. Merealisasikan perangkat lunak aplikasi kamera web untuk menggerakkan gambar objek dengan jari tangan menggunakan deteksi tepi metoda Sobel telah berhasil dilakukan.

2. Pengujian yang dilakukan sebanyak 5 kali pada masing-masing kondisi dengan latar tidak memantulkan cahaya, untuk gambar objek digerakan vertikal dan horizontal menunjukkan tingkat keberhasilan 100% dan untuk gambar objek digerakan diagonal menunjukan tingkat keberhasilan rata-rata 70%, sedangkan pada latar yang memantulkan cahaya menunjukkan tidak ada gambar objek yang bergerak dari keseluruhan arah pergerakan gambar objek, hal ini menunjukkan program tidak berhasil mendeteksi irisan.

V.2 Saran

Setelah mengevaluasi hasil pengujian pada Tugas Akhir ini, penulis berharap Tugas Akhir ini dapat dikembangkan lebih lanjut dengan beberapa saran sebagai berikut:

1. Hasil proses deteksi tepi mempengaruhi pergerakan gambar objek, untuk mendapatkan hasil pergerakan gambar objek yang lebih baik dapat mengganti proses deteksi tepi dengan metoda deteksi tepi yang lain. 2. Perangkat lunak aplikasi kamera web untuk menggerakkan gambar objek

dengan jari tangan dapat dikembangkan untuk aplikasi game interaktif dan untuk menggerakkan alat-alat operasi pada bidang kedokteran.


(31)

53 Unive rsit a s K rist e n M a ra nat ha

DAFTAR PUSTAKA

1. Basuki Achmad, Palandi Jozua F., Fatchurrochman. Pengolahan Citra Digital menggunakan Visual Basic. Yogyakarta, 2005

2. Holzner Steven. Visual Basic 6 Black Book. Massachusetts : The Coriolis Group, 1998.

3. Tip & Trik Pemrograman Visual Basic 6.0, Andi Yogyakarta dan Wahana Komputer Semarang, 2001.

4. http://www.dosadi.com/21 September 2007

5. http://download.evopage.com/vb6/Visual%20Basic%206.pdf 6. http://en.wikipedia.org/wiki/Edge_detection

7. http://en.wikipedia.org/wiki/Visual_Basic

8. http://ilmukomputer.com/2006/09/13/cepat-mahir-visual-basic-6.htm 9. http://people.revoledu.com/kardi/tutorial/VB/index.html

10.http://upi.yptk.ac.id/download/Citra%20Digital/Penegelolaan%20Citra/Te ori/Bab-8_Pendeteksian%20Tepi.pdf


(1)

Lampiran

A-15 U nive rsit a s K rist e n M a ra nat ha

TW AI N _ Log File

void TWAIN_LogFile(int fLog);

EZTwain can writ e a qui t e det ailed log of i t s act ivit y, inclu ding ever y TWAI N call it m ak es and t he r esult . Log out put goes t o c:\ e zt w a in .log . You can use TWAI N_Set LogFolder t o direct t he log file t o anot her dir ect or y.

TWAI N_LogFile( 0) close log file and t urn off logging

TWAI N_LogFile( 1) open log file ( if not alr eady) an d st ar t logging.

I f logging is alr eady t ur n ed on , TWAI N_ LogFile( 1) flu shes t h e logfile to disk so prior ou t pu t won ’t be lost in a subsequent cr ash.

TW AI N _ Se t H ide U I / TW AI N _ Ge t H id e UI

void TWAIN_SetHideUI(int fHide); int TWAIN_GetHideUI(void);

Th ese f unct ions con t r ol t he 'hide sour ce user inter face' flag. This flag is ini tially FALSE( 0) , but if you set it n on - zer o, t h en when a sour ce is en abled it will be ask ed t o hide it s u ser in t er face. Not e t h is is a r equest - som e sour ces will ignor e it .

See: How To: Hide t h e Dat asou r ce User I nt erf ace.

I f t he user int er face is hi dden, you will probably want t o set at least som e of t he basi c acqu isition par am et er s your self – see Negot iat in g Scanning

Par am et er s . See also: HasCon t r oll ableUI

TW AI N _ Se t I n d ica t or s

int TWAIN_SetIndicators(BOOL bVisible)

Tell t h e sour ce t o show ( hide) progr ess indicat or s durin g acquisition.

TW AI N _ Ope n Sou r ce

int TWAIN_OpenSource(LPCSTR pzName);

Opens t he Sour ce wi t h th e given nam e.

I f t hat sou rce is alr eady open , does n ot hing an d r et ur ns TRUE. I f anot h er sour ce is open , closes i t an d at t em pt s t o open t he specified sour ce. Will load an d open t h e Sour ce Man ager if needed.

I f t hi s call r et ur n s TRUE, TWAI N is in St at e 4 ( TWAI N_SOURCE_OPEN)

TW AI N _ Se t Pix e lTy p e

int TWAIN_SetPixelType(int nPixType); Tr y t o set t he cur r en t pi xel t ype for acqui si tion .

Th e sou r ce m ay select t his pixel t ype, but don't assum e i t will. This fun ct ion should be used in place of t he older

TWAI N_Set Cur r en t PixelType.


(2)

Lampiran

A-16 U nive rsit a s K rist e n M a ra nat ha

TW AI N _ Se t Xf e r Cou n t

int TWAIN_SetXferCount(int nXfers);

Tell t h e Sou r ce t he nu m ber of im ages t h e applicat ion will accep t . nXfer s = - 1 m eans any num ber ( t he def ault , when a device is open ed.) Ret ur ns: 1 for success, 0 for failur e.

TW AI N _ Acq uir e ToFile na m e

int TWAIN_AcquireToFilename(HWND hwndApp, LPCSTR pszFile);

Acquir e an i m age an d save it t o a file. I f t he filen am e cont ains a st an dard ex t en sion ( .bm p, .j pg, .j peg, . t if, .ti ff, .png, .pdf, .gif, .dcx) t hen t h e file is saved in t h e i m plied f or m at . Ot h er wise t he fil e is saved in the default save for m at – see TWAI N_ Set Sav eFor m at .

I f pszFile is NULL or an em pt y st r ing, t he u ser is pr om pt ed for t he file nam e an d for m at wit h a st andar d Sav e Fil e dialog. Only availabl e and appr opriat e for m at s ar e pr esen t ed in t he Save File dialog. I f you use t his feat u r e, you can call TWAI N_Last Ou t pu t File t o obt ain t h e filenam e.

See also TWAI N_Acquir e below. Ret ur n val ues:

0 success.

- 1 t he Acquir e failed.

- 2 file open er r or ( invalid pat h or n am e, or access denied) - 3 in valid DI B, or im age incom pat ible with file form at , or ... - 4 writing failed, possi bly ou t pu t devi ce is full.

- 10 user can cell ed File Sav e dialog

Th e m inim al u se of EZTwain i s t o call t hi s funct ion wit h null ar gum en t s: ErrCode = TWAIN_AcquireToFilename(0, “”);

TW AI N _ La st Er r or Cod e

int TWAIN_LastErrorCode(void);

Ret ur n t h e m ost r ecent EZTwain error code, one of t he EZTEC_ codes – See t he EZTwai n declar at ion file for your progr am m in g language, or r efer t o ezt w ai n.h .

TW AI N _ Re por t La st Er r or

void TWAIN_ReportLastError(LPCSTR pzMsg);

Li ke TWAI N_ Er ror Box, bu t if som e det ail s ar e av ailable from TWAI N about t h e last failur e, t hey ar e included in t he m essage box. This fun ction uses


(3)

1 Universitas Kristen Maranatha

BAB I

PENDAHULUAN

Bab ini membahas mengenai latar belakang, perumusan masalah, tujuan, pembatasan masalah, dan sistematika pembahasan Tugas Akhir.

I.1 Latar Belakang

Selain untuk menampilkan gambar fisik dan pergerakan suatu objek, kamera web dapat dikembangkan untuk aplikasi interaktif. Salah satu aplikasi interaktif kamera web adalah merekam objek diam dan objek yang bergerak, selanjutnya pergerakan dari objek yang bergerak dan objek yang diam tersebut di proses dengan sistem pengolahan citra di komputer.

Ide yang diambil pada Tugas Akhir ini berasal dari aplikasi kamera web dalam game interaktif ”menusuk balon” yang disusun oleh Krisyunardi (0322140). Aplikasi kamera web dalam game interaktif ”menusuk balon” ini berintikan memecahkan gambar objek berupa balon dengan tongkat penusuk. Pada Tugas Akhir ini dibuat perangkat lunak aplikasi kamera web untuk menggerakkan gambar objek dengan jari tangan. Aplikasi kamera web ini berintikan menggerakkan gambar objek dengan jari tangan jika terjadi irisan antara gambar objek dengan jari tangan. Kamera web digunakan untuk merekam posisi jari tangan dan hasilnya di proses dengan sistem pengolahan citra di komputer, sehingga hasil akhirnya diperoleh pergerakan pada gambar objek.

Dalam mengidentifikasi jari tangan, metoda yang digunakan adalah metoda deteksi tepi. Pada pengerjaan Tugas Akhir ini, metoda deteksi tepi yang digunakan adalah metoda Sobel (Sobel Edge Detection). Hasil proses deteksi tepi ini diperoleh tepi-tepi dari objek yang direkam oleh kamera web yang akan digunakan untuk menggerakkan gambar objek.

I.2 Perumusan Masalah

Bagaimana membuat program pengidentifikasi pergerakan jari tangan yang ditangkap oleh kamera web dan dapat menggerakkan gambar objek?


(4)

Bab I Pendahuluan 2

Universitas Kristen Maranatha I.3 Tujuan

Merealisasikan perangkat lunak aplikasi kamera web untuk menggerakkan gambar objek dengan jari tangan.

I.4 Pembatasan Masalah

1. Membahas program aplikasi kamera web untuk menggerakkan gambar objek yang sesuai dengan pergerakan jari tangan.

2. Pendeteksi pergerakan jari hanya mengatur pergerakan satu gambar objek. 3. Latar yang digunakan hanya latar yang berwarna gelap, contoh: warna

hitam dan warna pada latar tidak sama dengan warna pada gambar objek. 4. Pencahayaan mendukung dalam mengidentifikasi pergerakan jari tangan. 5. Kecepatan pergerakan jari tangan harus pelan.

6. Bentuk gambar objek segi empat. I.5 Sistematika Pembahasan

Sistematika pembahasan laporan tugas akhir ini disusun menjadi lima bab, yaitu sebagai berikut :

 Bab I : Pendahuluan

Bab ini membahas tentang latar belakang, perumusan masalah, tujuan penulisan, pembatasan masalah dan sistematika pembahasan.

 Bab II : Dasar Teori

Bab ini membahas tentang konsep dasar pengolahan citra, sistem warna, deteksi tepi, mengubah citra berwarna menjadi gray-scale, citra biner dan microsoft visual basic 6.0.

 Bab III : Perancangan dan Realisasi

Bab ini membahas tentang perancangan dan realisasi perangkat lunak aplikasi kamera web untuk menggerakan gambar objek dengan jari tangan.

 Bab IV : Data Pengamatan dan Analisa

Bab ini akan membahas pengamatan, pengujian dan analisa perangkat lunak yang telah dirancang dan direalisasikan.

 Bab V : Kesimpulan dan Saran


(5)

52 Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan

Berdasarkan hasil pengujian pada Tugas Akhir ini, maka dapat disimpulkan beberapa hal sebagai berikut:

1. Merealisasikan perangkat lunak aplikasi kamera web untuk menggerakkan gambar objek dengan jari tangan menggunakan deteksi tepi metoda Sobel telah berhasil dilakukan.

2. Pengujian yang dilakukan sebanyak 5 kali pada masing-masing kondisi dengan latar tidak memantulkan cahaya, untuk gambar objek digerakan vertikal dan horizontal menunjukkan tingkat keberhasilan 100% dan untuk gambar objek digerakan diagonal menunjukan tingkat keberhasilan rata-rata 70%, sedangkan pada latar yang memantulkan cahaya menunjukkan tidak ada gambar objek yang bergerak dari keseluruhan arah pergerakan gambar objek, hal ini menunjukkan program tidak berhasil mendeteksi irisan.

V.2 Saran

Setelah mengevaluasi hasil pengujian pada Tugas Akhir ini, penulis berharap Tugas Akhir ini dapat dikembangkan lebih lanjut dengan beberapa saran sebagai berikut:

1. Hasil proses deteksi tepi mempengaruhi pergerakan gambar objek, untuk mendapatkan hasil pergerakan gambar objek yang lebih baik dapat mengganti proses deteksi tepi dengan metoda deteksi tepi yang lain. 2. Perangkat lunak aplikasi kamera web untuk menggerakkan gambar objek

dengan jari tangan dapat dikembangkan untuk aplikasi game interaktif dan untuk menggerakkan alat-alat operasi pada bidang kedokteran.


(6)

53 Unive rsit a s K rist e n M a ra nat ha

DAFTAR PUSTAKA

1. Basuki Achmad, Palandi Jozua F., Fatchurrochman. Pengolahan Citra Digital menggunakan Visual Basic. Yogyakarta, 2005

2. Holzner Steven. Visual Basic 6 Black Book. Massachusetts : The Coriolis Group, 1998.

3. Tip & Trik Pemrograman Visual Basic 6.0, Andi Yogyakarta dan Wahana Komputer Semarang, 2001.

4. http://www.dosadi.com/21 September 2007

5. http://download.evopage.com/vb6/Visual%20Basic%206.pdf 6. http://en.wikipedia.org/wiki/Edge_detection

7. http://en.wikipedia.org/wiki/Visual_Basic

8. http://ilmukomputer.com/2006/09/13/cepat-mahir-visual-basic-6.htm 9. http://people.revoledu.com/kardi/tutorial/VB/index.html

10.http://upi.yptk.ac.id/download/Citra%20Digital/Penegelolaan%20Citra/Te ori/Bab-8_Pendeteksian%20Tepi.pdf