agan-agan yang baik...
saya punya tugas kuliah nih... membuat motion detection alias pendeteksi gerakan melalui kamera.
program yang ane buat udah jadi, nah permasalahannya gue ngambil algoritma punya orang yang gue susah untuk menjelaskannya dilaporan...
koding yang gue bingung terletak pada function untuk membedakan kedua warna, lihat scriptnya dibawah ini gan...
Quote:
Private Function Different(ByVal a As Long, ByVal b As Long) As Boolean
'cek perbedaan dua warna
ar = a Mod 256: a = a \ 256
ag = a Mod 256: a = a \ 256
ab = a Mod 256: a = a \ 256
br = b Mod 256: b = b \ 256
bg = b Mod 256: b = b \ 256
bb = b Mod 256: b = b \ 256
sense = 255 - Slider1.Value * 5
Different = (Sqr((ar - br) * (ar - br) + (ag - bg) * (ag - bg) + (ab - bb) * (ab - bb)) > sense) 'formula for counting different
End Function
nah terus untuk mengimplementasikan function di atas digunakanlah timer yang ada pada vb 6, fungsi dari script ini adalah untuk menjalankan proses deteksi gerakan, yang akan dipantau kamera secara real time....
tapi gue juga butuh penjelasan yang luas dari agan-agan semua,
berikut scriptnya gan,
Quote:
Private Sub Timer1_Timer()
'menampilkan gambar dari kamera
SendMessage mCapHwnd, GET_FRAME, 0, 0
SendMessage mCapHwnd, COPY, 0, 0
cam1.Picture = Clipboard.GetData: Clipboard.Clear
stepp = 3 'Grid dense
Dim qan, qann As Long
qan = 0
qann = 0
For i = 1 To cam1.Width / Screen.TwipsPerPixelX Step stepp
For j = 1 To cam1.Height / Screen.TwipsPerPixelY Step stepp
If Different(cam1.Point(i * stepp * Screen.TwipsPerPixelX, j * stepp * Screen.TwipsPerPixelY), cam2.Point(Screen.TwipsPerPixelX * i * stepp, j * stepp * Screen.TwipsPerPixelY)) Then
cam1.Circle (i * stepp * Screen.TwipsPerPixelX, Screen.TwipsPerPixelY * j * stepp), 1, RGB(255, 0, 0)
qann = qann + 1
End If
Next
Next
lblProgres.Caption = Int(qann * 100 / 910) & "%" 'perhitungan gerakan dalam persentase
ProgressBar1.Value = Int(qann * 100 / 910)
End Sub
para agan-agan yang baik, mohon bantu saya, bagaimana sebenarnya penjelasan yang pas untuk program di atas.... tuh script jalan 100% gan, tapi kalau di copy paste ane yakin gak bakalan jalan, karena agan musti nambahin komponen library avicap32 bawaan windows, cari aja diinternet ada gan....
please bantu saya gan,
salam programmer vb indonesia....