Académique Documents
Professionnel Documents
Culture Documents
Didik Subandi
NRP.7103.030.028
Dosen Pembimbing:
Edy Satriyanto, SSi
JURUSAN ELEKTRONIKA
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
SURABAYA 2006
ALGORITMA POSISI BATU BATA
PADA ROBOT TUKANG BATU
Oleh:
Didik Subandi
NRP. 7103 030 028
Disetujui oleh
Tim Penguji: Dosen Pembimbing:
1. 1.
2. 2.
3.
Firman Arifin, ST
NIP. 132.296.743
Mengetahui
Ketua Jurusan Teknik Elektronika
Penulis
UCAPAN TERIMA KASIH
HALAMAN JUDUL
LEMBAR PENGESAHAN............................................................... i
ABSTRAK........................................................................................ iii
ABSTRACT...................................................................................... iv
KATA PENGANTAR...................................................................... v
UCAPAN TERIMA KASIH............................................................. vii
DAFTAR ISI..................................................................................... ix
BAB I PENDAHULUAN................................................................. 1
1.1 Latar Belakang ................................................................ 1
1.2 Tujuan.............................................................................. 1
1.2.1 Tujuan Umum......................................................... 1
1.2.2 Tujuan Khusus........................................................ 2
1.3 Batasan Masalah............................................................... 2
1.4 Ruang Lingkup Pembahasan............................................ 2
1.5 Sistematika Penulisan....................................................... 2
BAB V PENUTUP............................................................................ 41
5.1 Kesimpulan..................................................................... 41
5.2 Saran............................................................................... 41
DAFTAR PUSTAKA...................................................................... 43
TENTANG PENULIS..................................................................... 45
LAMPIRAN A.................................................................................. 47
LAMPIRAN B.................................................................................. 55
DAFTAR GAMBAR
1. 1 LATAR BELAKANG
Perkembangan teknologi dewasa ini membawa manusia
menuju era teknologi dan era otomatisasi yang semakin tinggi. Dampak
dari otomatisasi tersebut dapat dirasakan telah merambah hampir ke
seluruh sudut kehidupan manusia. Dengan adanya tekanan ini
dibutuhkan peralatan otomatis untuk menggantikan pekerjaan manusia
dengan tujuan untuk meningkatkan kualitas serta mutu dari suatu produk
maupun jasa yang dihasilkan agar tidak kalah dalam persaingannya. Di
samping itu juga untuk menjaga keselamatan dari manusia yang
melakukan kerja tersebut.
Perkembangan ilmu pengetahuan dan teknologi dewasa ini
sangat pesat terutama di bidang elektronika khususnya robotika sehingga
membuat manusia lebih memberdayakan robot untuk menggantikan
tugas manusia.
Metode pengendalian peralatan yang ada di dunia industri
maupun rumah tangga dewasa ini berkembang sangat pesat, mulai dari
sistem kontrol yang sederhana sampai dengan yang paling canggih.
Salah satu diantaranya adalah dengan menggunakan teknik
kendali logika yang diimplementasikan pada komputer atau
mikrokontroller untuk mengendalikan proses industri kendali robot,
rumah tangga dan sebagainya.
Pada umumnya kendali logika yang diimplementasikan pada
komputer atau mikrokontroller yang dirancang hanya untuk
mengendalikan sebuah peralatan. Hal ini dilakukan untuk efektivitas dan
fungsional dari alat serta pengendali yang digunakan.
Dengan memadukan peralatan mikrokontroller, rangkaian
driver, kamera sebagai perangkat sensor dan rangkaian lainnya serta
pemrograman assembly sebagai pengendalinya, maka akan tercipta
suatu piranti kontroler yang baru dan dapat dioperasikan secara otomatis
1. 2 TUJUAN
1. 2. 1 Tujuan Umum
Tujuan umum dari pembuatan Tugas Akhir ini untuk
melengkapi kurikulum studi pada Politeknik Elektronika Negeri
Surabaya dan sebagai salah satu syarat kelulusan dalam menempuh
pendidikan akhir di Politeknik Elektronika Negeri Surabaya.
1. 2. 2 Tujuan Khusus
Tujuan dari proyek akhir ini adalah untuk membuat suatu robot
yang bisa membantu meringankan pekerjaan manusia. Dalam proyek
akhir ini adalah robot tukang batu yang berguna untuk membantu
pekerjaan manusia dalam pembuatan rumah, khususnya dalam
pembuatan tembok.
1. 3 BATASAN MASALAH
Asumsi berikut ini sebagai batasan masalah yang dipakai dalam
tugas akhir ini adalah:
1. 5 SISTEMATIKA PENULISAN
Sistematika penulisan dari buku proyek akhir ini direncanakan
sebagai berikut:
BAB I PENDAHULUAN
Berisi tentang latar belakang, tujuan, batasan masalah,
sistematika pembahasan masalah yang digunakan.
BAB II TEORI PENUNJANG
Membahas tentang teori-teori yang digunakan dalam
penyelesaian proyek akhir ini yaitu image processing, database dan
bahasa pemrograman visual basic.
BAB V PENUTUP
Setelah pengujian dan analisa alat selesai, maka diambil
kesimpulan yang mendukung hasil kerja alat dan saran yang menunjang
kesempurnaan alat.
********** Halaman ini sengaja dikosongkan**********
BAB II
TEORI PENUNJANG
2. 2 IMAGE PROCESSING
Pemrosesan citra secara digital (image processing) banyak
digunakan untuk memperoleh data dari sebuah pencitraan. Pencitraan itu
sendiri merupakan salah satu langkah yang digunakan untuk
mengenalkan komputer dengan lingkungan dengan media kamera. Pada
tugas akhir ini dilakukan proses pengambilan data oleh kamera dan
kemudian dilakukan pengolahan gambar dengan image processing untuk
selanjutnya dihasilkan data berupa nilai-nilai. Data nilai ini selanjutnya
diproses sehinga diperoleh data yang dikonversikan menjadi perintah
kepada mikrocontroller untuk melakukan system control pada lampu
lalu lintas.
Pembahasan mengenai konse-konsep dari pengolahan citra
digital secara umum dan teori-teori yang digunakan pada perencanaan
proses pengolahan citra dapat dijabarkan sebagai berikut.
2. 2. 2 Model Citra
Citra merupakan matrik dua dimensi dari fungsi intensitas
cahaya. Karena itu, referensi citra menggunakan dua variabel yang
menunjukkan posisi pada bidang dengan sebuah fungsi intensitas cahaya
yang dapat dituliskan sbagai f(x,y) dimana f adalah nilai amplitudo pada
koordinat spasial (x,y). Karena cahaya merupakan salah satu bentuk
energi, f(x,y)tidak berharga nol atau negatif dan merupakan bilangan
berhingga, yang dalam pernyataan matematis adalah sebagai
berikut,konversi sistem koordinat citra diskrit ditunjukkan oleh gambar
berikut :
(0,0)
y
Citra
F(x,y)
2. 2. 4 Warna
Berikut ini membahas mengenai teori dasar warna pada citra
digital, penjumlahan warna dan konversinya.
C = rR + gG + bB
Jika skalar r, g, b kita beri harga antara 0 dan 1, maka semua
definisi warna akan berada dalam kubus sebagai berikut :
2. 2. 4. 2 Penjumlahan Warna
Dalam komputer kita tidak terlibat langsung dengan panjang
gelombang suatu warna. Warna yang dideskripsikan dengan RGB
adalah pemetaan yang mengacu pada panjang gelombang dari RGB.
Pemetaan menghasilkan nuansa warna sekitar 16 juta
( 256 = 16.777.216) yaitu 256 (8 bit)untuk masing-masing R, G, dan B
3
2. 2. 5 Greyscale
Merupakan sebuah format warna yang mana pengambilan rata-
rata dari nilai r, g, dan b dari sebuah format gambar berwarna. Dengan
menggunakan persamaan sebagai berikut :
2. 2. 6 Segmentasi
Proses segmentasi di sini menekankan pada pengambilan citra
serta bagaimana cara membedakan atau memisahkan antara obyek
dengan background dan antara obyek itu sendiri. Pendeteksian dalam hal
ini merupakan metode awal yang berguna untuk mengenali warna merah
dari background.
Disini digunakan metode thresholding untuk memisahkan
antar obyek dengan background yang agak gelap atau sebaliknya.
Metode ini digunakan untuk mengkonversi data image menjadi biner
dengan tujuan agar proses selanjutnya lebih mudah. Dari proses
thresholding ini akan didapat hasilnya apabila jumlah warna green dan
blue mempunyai intensitas kedalaman warna kurang dari red maka
warna tersebut menjadi warna hitam.
Secara sistematis dapat dituliskan sebagai berikut : R > G + B.
Teknik ini berdasarkan konsep yang sederhana. Jadi warna background
dengan warna obyek saling berkebalikan (invert).
2. 2. 7 Scanning
Scanning disini adalah suatu metode yang dirancang di mana
fungsinya adalah untuk mendapatkan letak posisi keberadaan benda
(bata) dengan memanfaatkan pixel warna yang dimiliki baik itu
horizontal maupun vertikal. Berikut adalah ilustrasi prinsip kerja dari
scanning :
n
Vy = ∑I
y =1
( x, y )
I ( x, y ) = R( x , y ) + G ( x , y ) + B( x , y )
Dengan :
Hx = Jumlah scanning horizontal
Vy = Jumlah scanning vertical
I ( x, y ) = Jumlah intensitas tiap pixel pada titik x,y
2. 2. 8 Filter
Proses filtering sangatlah dibutuhkan pada image processing
karena keberadaan noise dapat menjadi gangguan pada proses
selanjutnya. Pada tugas akhir ini digunakan median filter sebagai salah
satu metode filtering untuk mengurangi noise pada gambar. Median
filter ini mempunyai prinsip mengambil nilai tengah dari sample matrix
yang diberikan. Sebagai contoh matrix 4x4 sehingga ada 16 kombinasi
warna RGB yang berbeda-beda yang tidak berurut. Setelah itu dilakukan
proses mengurutkan 16 nilai tersebut dari yang terkecil sampai yang
terbesar, lalu dilakukan pengambilan nilai tengah dari 16 urutan
tersebut.
********** Halaman ini sengaja dikosongkan**********
BAB III
PERENCANAAN DAN PEMBUATAN PROGRAM
3. 1. 2 Diagram Alir
Proyek akhir ini merupakan perwujudan dari algoritma
program yang telah diuraikan diatas. Alur program tersebut merupakan
fungsi untuk mengatur alur program sehingga program dapat berjalan
dengan baik dan benar. Selain itu alur program dapat menggambarkan
secara singkat dan tepat pola pikir program.
Alur program proyek akhir ini mempunyai kesamaan dengan
algoritma pemikiran manusia sehingga mudah untuk diwujudkan dalam
bentuk perangkat lunak dan dapat dimengerti secara logika dan nalar.
Pada permulaan alur program terdapat penentuan lebar dan ketinggian
dari tembok, kemudian terdapat pengambilan data jumlah bata dan
tingkat yang diperlukan berdasarkan lebar dan ketinggian yang telah
ditentukan tersebut.
Setelah itu prosesor akan memberikan perintah kepada
mikrokontroler untuk bergerak ke samping sambil membuka tutup
wadah semen sehingga terbentuk suatu landasan atau dasar bagi bata.
Kemudian dengan bantuan konveyor akan dilakukan peletakan bata pada
lantai. Kamera akan mendeteksi bata di lantai berdasarkan jumlah warna
merah yang ditangkap dan luasan dari obyek tersebut. Bila kamera telah
mendeteksi bata maka konveyor akan berhenti bergerak. Kemudian
kamera akan melakukan scanning untuk mendeteksi posisi bata tadi dan
melakukan koreksi apabila posisinya melenceng dari jalur yang ada.
Setelah itu robot bergeser ke samping dan melakukan proses peletakan
bata kembali hingga lebar tembok yang telah ditentukan. Jika lebar telah
terpenuhi maka robot akan bergerak naik untuk mendapatkan ketinggian
yang diinginkan. Semua proses tersebut akan disesuaikan dengan data
pada database yang telah dibuat.
Dari algoritma yang telah dijelaskan di atas, untuk
memudahkan menganalisa, diagram alir dari perangkat lunak
ditunjukkan pada gambar 3.1
Gambar 3.1 Diagram Alir
3. 2 PIRANTI PENDUKUNG
Seperti yang telah disebutkan pada bagian depan, piranti
pendukung untuk proyek akhir ini adalah berupa kamera digital yang
berfungsi sebagai indera penglihatan bagi komputer untuk mengenali
pola suatu obyek, disini jenis kamera sangat berpengaruh terhadap
proses pengolahan image.
Bila kamera kurang sensitif terhadap perubahan intensitas
cahaya maka kualitas gambar yang diambil kurang baik. Begitu pula
resolusi yang didukung oleh kamera tersebut. Untuk piranti penghubung
antara kamera dengan komputer adalah melalui USB (Universal Serial
Bus) yang terdapat pada komputer maupun pada kamera. Untuk diagram
sistem dapat dilihat pada gambar 3.2. Komunikasi yang digunakan
antara PC dengan mikrokontroller adalah komunikasi serial.
(a)
(b)
3. 3. 3. 1 Command Proses
Command Proses adalah command yang berfungsi untuk
menjalankan perintah dari PC ke mikrokontroller. Syaratnya adalah bila
user sudah memasukkan data lebar tembok maka form kedua akan
muncul dan Command Proses akan muncul juga. Listing program
command proses bisa dilihat pada baris bawah ini.
Private Sub Cmd_proses_Click()
Dim a, b, c, d, e As Integer
a = 300
MSComm1.Output = "a"
Tunda a
e = Text3.Text
d = 10
c = 1100
b = 0
Do
MSComm1.Output = "b"
Tunda c
b = b + 1
Loop Until b = e
MSComm1.Output = "c"
Tunda a
Do
Cek_bata
Cek_Posisi
Cek_batako
b = b + 1
loop until b = Text4.Text
End Sub
3. 3. 4 Penentuan Segmentasi
Segmentasi dilakukan untuk membedakan warna obyek dengan
background. Programnya adalah sebagai berikut.
Sub OperasiRobot()
Static vPutih(320, 240) As Byte
Static x As Integer, y As Integer
Dim R, g, b As Long
Dim atas, bawah, up As Integer
Dim a, xbar, ybar, ttkx, ttky, i, j, w As Integer
For y = 30 To 180
For x = 60 To 319
' Deteksi warna putih dengan cara
'R > (G + B)
On Error Resume Next
If VideoData(x, y).R > (CInt(VideoData(x, y).g)
+ VideoData(x, y).b) - frmUtama.HScroll1.Value Then
vPutih(x, y) = 255
w = 255
Else
vPutih(x, y) = 0
w = 0
a = a + 1
xbar = xbar + 1 * x
ybar = ybar + 1 * y
End If
VideoData(x, y).R = w
VideoData(x, y).g = w
VideoData(x, y).b = w
Next
Next
ttkx = xbar \ a
ttky = ybar \ a
frmUtama.Text4.Text = ttkx & " " & ttky & " " & a
frmUtama.Text6.Text = a
For i = -3 To 3 '1 To 5
For j = -3 To 3 '1 To 5
VideoData(ttkx + i, ttky + j).R = 255
VideoData(ttkx + i, ttky + j).g = 255
VideoData(ttkx + i, ttky + j).b = 0
Next j
Next i
bawah = 40
For y = bawah To bawah
For x = 0 To 319
VideoData(x, y).R = 0
VideoData(x, y).g = 255
VideoData(x, y).b = 255
Next
Next
atas = 160
For y = atas To atas
For x = 0 To 319
VideoData(x, y).R = 0
VideoData(x, y).g = 255
VideoData(x, y).b = 255
Next
Next
For y = 30 To 180
For x = 60 To 319
' Deteksi warna merah dengan cara
'R > (G + B)
On Error Resume Next
If VideoData(x, y).R > (CInt(VideoData(x, y).g)
+ VideoData(x, y).b) - frmUtama.HScroll1.Value Then
vMerah(x, y) = 255
w = 255
Else
vMerah(x, y) = 0
w = 0
a = a + 1
xbar = xbar + 1 * x
ybar = ybar + 1 * y
End If
VideoData(x, y).R = w
VideoData(x, y).g = w
VideoData(x, y).b = w
Next
Next
ttkx = xbar \ a
ttky = ybar \ a
frmUtama.Text4.Text = ttkx & " " & ttky & " " & a
frmUtama.Text6.Text = a
For i = -3 To 3 '1 To 5
For j = -3 To 3 '1 To 5
VideoData(ttkx + i, ttky + j).R = 255
VideoData(ttkx + i, ttky + j).g = 255
VideoData(ttkx + i, ttky + j).b = 0
Next j
Next i
bawah = 40
For y = bawah To bawah
For x = 0 To 319
VideoData(x, y).R = 0
VideoData(x, y).g = 255
VideoData(x, y).b = 255
Next
Next
atas = 160
For y = atas To atas
For x = 0 To 319
VideoData(x, y).R = 0
VideoData(x, y).g = 255
VideoData(x, y).b = 255
Next
Next
Pada program di atas juga dibuat garis vertikal dari titik tengah
untuk menentukan luasan dari obyek. Garis inilah yang akan dideteksi.
Apabila garis yang dibuat oleh komputer panjangnya melebihi lintasan
maka bata dianggap telah bergeser dari tempat semula.
Contoh listing program untuk membuat tembok selebar 1 m
adalah sebagai berikut:
a = 200
MSComm1.Output = "a"
Tunda a
b = 1000
MSComm1.Output = "b"
Tunda 4 * b
MSComm1.Output = "c"
Tunda a
'c = 10
cek_bata
'Tunda c
cek_batako
MSComm1.Output = "f"
MSComm1.Output = "h"
cek_bata
'Tunda c
cek_batako
MSComm1.Output = "f"
MSComm1.Output = "h"
cek_bata
'Tunda c
cek_batako
MSComm1.Output = "f"
MSComm1.Output = "h"
cek_bata
'Tunda c
MSComm1.Output = "f"
End Sub
BAB IV
PENGUJIAN DAN ANALISA PROGRAM
Percobaan Waktu
1 20 det
2 21 det
3 21 det
4 23 det
5 20 det
6 32 det
7 20 det
8 21 det
9 21 det
10 20 det
5.1 KESIMPULAN
5.2 SARAN
Nama :
Didik Subandi
Tempat / Tanggal Lahir :
Bangkalan/ 13 Oktober 1981
Riwayat Pendidikan :
1. SDN Kraton 6
(1988 - 1992)
2. SDN Pejagan 1
(1992 – 1994)
2. SLTPN I Bangkalan
(1994 – 1997)
3. SMUN I Bangkalan
(1997 - 2000)
4. PENS - ITS D3 Teknik Elektronika
(2003 - 2006)
Alamat :
Jl. Bhayangkara Abdul Rahem 2 Rt/Rw
2/03 Bangkalan – Madura 69112
Telp / HP :
03160473625
Email :
Didik_subandi@yahoo.com
Pesan :
Awali dengan niat yang baik, bersungguh-sungguhlah dalam berusaha,
setelah itu bertawakkal hanya kepada 4JJ1...
LAMPIRAN A
LISTING PROGRAM UTAMA.frm
Option Explicit
Dim lwndC As Long ' Handle to the Capture Windows
Dim lNFrames As Long ' Number of frames captured
End Sub
a = 200
MSComm1.Output = "a"
Tunda a
b = 1600
MSComm1.Output = "b"
Tunda b
MSComm1.Output = "c"
Tunda a
MSComm1.Output = "e"
'c = 10
cek_bata
'Tunda c
MSComm1.Output = "f"
End Sub
Private Sub Cmd_gjl40_Click()
Dim a, b, c As Integer
MSComm1.Output = "h"
a = 200
MSComm1.Output = "a"
Tunda a
b = 1000
MSComm1.Output = "b"
Tunda 2 * b
MSComm1.Output = "c"
Tunda a
c = 1000
MSComm1.Output = "e"
Tunda c
MSComm1.Output = "f"
MSComm1.Output = "g"
MSComm1.Output = "d"
Tunda b
MSComm1.Output = "e"
Tunda c
MSComm1.Output = "f"
'c = 10
'cek_bata
'Tunda c
'cek_batako
'MSComm1.Output = "f"
'MSComm1.Output = "h"
'MSComm1.Output = "e"
'cek_bata
'Tunda c
'MSComm1.Output = "f"
End Sub
a = 200
MSComm1.Output = "a"
Tunda a
b = 1000
MSComm1.Output = "b"
Tunda 3 * b
MSComm1.Output = "c"
Tunda a
'c = 10
cek_bata
'Tunda c
cek_batako
MSComm1.Output = "f"
MSComm1.Output = "h"
cek_bata
'Tunda c
cek_batako
MSComm1.Output = "f"
MSComm1.Output = "h"
cek_bata
'Tunda c
MSComm1.Output = "f"
End Sub
a = 200
MSComm1.Output = "a"
Tunda a
b = 1000
MSComm1.Output = "b"
Tunda 4 * b
MSComm1.Output = "c"
Tunda a
'c = 10
cek_bata
'Tunda c
cek_batako
MSComm1.Output = "f"
MSComm1.Output = "h"
cek_bata
'Tunda c
cek_batako
MSComm1.Output = "f"
MSComm1.Output = "h"
cek_bata
'Tunda c
cek_batako
MSComm1.Output = "f"
MSComm1.Output = "h"
cek_bata
'Tunda c
MSComm1.Output = "f"
End Sub
Private Sub Cmd_gnp40_Click()
'MSComm1.Output = "h"
'd = 800
'MSComm1.Output = "b"
'Tunda d
'a = 200
'MSComm1.Output = "a"
'Tunda a
'b = 1600
'MSComm1.Output = "b"
'Tunda b
'MSComm1.Output = "c"
'Tunda a
'c = 10
'cek_bata
'Tunda c
'MSComm1.Output = "d"
'Tunda d
'MSComm1.Output = "i"
End Sub
'a = 200
'MSComm1.Output = "a"
'Tunda a
'b = 1600
'MSComm1.Output = "b"
'Tunda 2 * b
'MSComm1.Output = "c"
'Tunda a
'c = 10
'cek_bata
'Tunda c
'cek_batako
'MSComm1.Output = "f"
'MSComm1.Output = "h"
'cek_bata
'Tunda c
'MSComm1.Output = "d"
'Tunda d
'MSComm1.Output = "i"
End Sub
'a = 200
'MSComm1.Output = "a"
'Tunda a
'b = 1600
'MSComm1.Output = "b"
'Tunda 3 * b
'MSComm1.Output = "c"
'Tunda a
'c = 10
'cek_bata
'Tunda c
'cek_batako
'MSComm1.Output = "f"
'MSComm1.Output = "h"
'cek_bata
'Tunda c
'cek_batako
'MSComm1.Output = "f"
'MSComm1.Output = "h"
'cek_bata
'Tunda c
'MSComm1.Output = "d"
'Tunda d
'MSComm1.Output = "i"
End Sub
Sub setkam_Click()
capDlgVideoFormat lwndC
ResizeCaptureWindow lwndC
End Sub
Type tImage
b As Byte
g As Byte
R As Byte
End Type
Type tVideoData
b As Byte
g As Byte
R As Byte
End Type
Else
a = a + 1
End If
Next
Next
'If a < 35000 Then Bata = True
c = 0
d = 100
Do
b = frmUtama.Text6.Text
frmUtama.MSComm1.Output = "e"
Tunda d
If b < 35000 Then
Exit Sub
End If
c = c + 1
frmUtama.Text6.Refresh
Loop Until c = 20
End Sub
Sub OperasiRobot()
' Segmentasi Warna Putih
' Pixel lainnya menjadi hitam
Static vPutih(320, 240) As Byte
Static x As Integer, y As Integer
Dim R, g, b As Long
Dim atas, bawah, up As Integer
Dim a, xbar, ybar, ttkx, ttky, i, j, w As Integer
'-----------------------Low Pass Filter-----------------
-------------------------
For x = 0 To vLx - 1
R = 255
g = 255
b = 255
For y = 0 To vLy - 1
R = (2 * R + VideoData(x, y).R) \ 3
g = (2 * g + VideoData(x, y).g) \ 3
b = (2 * b + VideoData(x, y).b) \ 3
VideoData(x, y).R = R
VideoData(x, y).g = g
VideoData(x, y).b = b
Next
Next
For y = 0 To vLy - 1
R = 255
g = 255
b = 255
For x = 0 To vLx - 1
R = (2 * R + VideoData(x, y).R) \ 3
g = (2 * g + VideoData(x, y).g) \ 3
b = (2 * b + VideoData(x, y).b) \ 3
VideoData(x, y).R = R
VideoData(x, y).g = g
VideoData(x, y).b = b
Next
Next
'-------------------------------------------------------
--------------------------------
For y = 30 To 180
For x = 60 To 319
' Deteksi warna putih dengan cara
'R > (G + B)
On Error Resume Next
If VideoData(x, y).R > (CInt(VideoData(x, y).g)
+ VideoData(x, y).b) - frmUtama.HScroll1.Value Then
vPutih(x, y) = 255
w = 255
Else
vPutih(x, y) = 0
w = 0
a = a + 1
xbar = xbar + 1 * x
ybar = ybar + 1 * y
End If
VideoData(x, y).R = w
VideoData(x, y).g = w
VideoData(x, y).b = w
Next
Next
ttkx = xbar \ a
ttky = ybar \ a
frmUtama.Text4.Text = ttkx & " " & ttky & " " & a
frmUtama.Text6.Text = a
For i = -3 To 3 '1 To 5
For j = -3 To 3 '1 To 5
VideoData(ttkx + i, ttky + j).R = 255
VideoData(ttkx + i, ttky + j).g = 255
VideoData(ttkx + i, ttky + j).b = 0
Next j
Next i
bawah = 40
For y = bawah To bawah
For x = 0 To 319
VideoData(x, y).R = 0
VideoData(x, y).g = 255
VideoData(x, y).b = 255
Next
Next
atas = 160
For y = atas To atas
For x = 0 To 319
VideoData(x, y).R = 0
VideoData(x, y).g = 255
VideoData(x, y).b = 255
Next
Next
Dim Ymax, Ymin As Integer
Ymax = Ymin = -1
End Sub