Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 4.588 pregleda

Najnovija ↓

VB kod za prepoznavanje oblika 18.10.2008. u 19:41 · pre 219 meseci #1
Da li je moguce i kako napisati kod koji bi omogucavao racunaru da prepozna odnosno razlikuje oblik kugle i kocke, koristeci samo WEB kameru.
Re: VB kod za prepoznavanje oblika 18.10.2008. u 20:00 · pre 219 meseci #2
Moguce je i vec odradjeno.

Ja sam imao samo problem kako da "ocitam" sliku sa kamere. Pa sam nasao neki primer koji je okupirao clipboard, sto nikako nije dobro jer cim neko pokusa nesto sa cb - program puca.

Iz tog razloga sam celu stvar i zabatalio dok se ne edukujem kako da citam sliku "direktno" sa kamere.
Re: VB kod za prepoznavanje oblika 19.10.2008. u 19:28 · pre 219 meseci #3
Ne razumem sta je problem. Ja sam sa WEB kamericom odradio sigurnosni sistem gde je slika sa kamere bila direktno prikazana u aplikaciji napisanoj u VB. Mislim da sam gotov modul nasao na internetu i samo sam ga ubacio u svoj kod, koji je jos upravljao sa interfejsom prikljucenim na LPT.
Re: VB kod za prepoznavanje oblika 19.10.2008. u 23:30 · pre 219 meseci #4
Ako nije prob. okaci taj modul a ja cu ti pomoci oko prepoznavanja jednostavnih oblika.
Re: VB kod za prepoznavanje oblika 20.10.2008. u 18:07 · pre 219 meseci #5
@stefan: zar nisi mogao da kreiras svoju "clipboard klasu", koju ostali programi ne bi razumeli (i samim tim ne bi menjali sadrzaj clipboarda), tj ne znam dal si ti smestao sliku u clipboard... verovatno nisi, tako da je ovaj moj post sasvim bespotreban :)
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: VB kod za prepoznavanje oblika 20.10.2008. u 23:15 · pre 219 meseci #7
Krcko to sto si ti rekao stoji ali ne vidim kako da dobijem sliku od drivera bilo gde osim u win. default clipboard. Nebojsa ovaj primer radi isto to sto sam i ja radio pogledaj Sub Timer1_Timer:

Code:

...
SendMessage mCapHwnd, GET_FRAME, 0, 0 '<- hvata sliku (frame) sa kamere
SendMessage mCapHwnd, COPY, 0, 0 ' <- smesta sliku u clipboard

'Dalje vam je jasno:

Picture1.Picture = Clipboard.GetData 
Clipboard.Clear
...


U tom periodu kada mi je to trebalo sam potrosio dosta vremena na ovo, ali nisam pronasao bolji nacin od ovog a ovo je jako ne efikasno.
Re: VB kod za prepoznavanje oblika 21.10.2008. u 12:11 · pre 219 meseci #9
@Stefan
Da, koristi clipboard :) ... sto bi Aleksandar rekao bespotreban post ...
Malo sam prelistao MSDN (imam staru na laptopu, za VS6)
Ovako
Ovi koji u VB-u kopiraju frem u Clipboard obicno to rade zato sto im frem treba kao dib (za neku obradu i sl.) ili zato sto im je tako jednostavnije.
Frem moze da se direktno iscrta u prozoru (ispod imas kod koji ne koristi clipboard) a ako ti treba dib koristi neki kod za kopiranje grafike sa prozora u memoriju.
Prozor u kom drajver iscrtava sliku je prozor koji je kreiran capCreateCaptureWindow funkcijom i on je child u odnosu na glavnu formu.
Ove konstante sam kopirao iz C++ header-a , nema ih u VB APIViewer-u
Stavi Timer1 timer na formu i kopiraj ovo ispod
poz

Code:

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 Const WS_CHILD = &H40000000
Private Const WS_VISIBLE = &H10000000
Private Const WM_CAP_START = &H400
Private Const WM_CAP_UNICODE_START = WM_CAP_START + 100
Private Const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10  'konektovanje drajvera
Private Const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11 ' diskonektovanje drajvera
Private Const WM_CAP_GRAB_FRAME = WM_CAP_START + 60 ' uzimanje frema
Private Const WM_CAP_GRAB_FRAME_NOSTOP = WM_CAP_START + 61 ' uzimanje frema bez zaustavljanja
Private Const WM_CAP_EDIT_COPY = WM_CAP_START + 30 ' WinMsg za kopiranje frema u clipboard
Private Const WM_CAP_FILE_SAVEDIB = WM_CAP_UNICODE_START + 25 'WinMsg za snimanje frema u fajl

Private hCam As Long ' hWnd za child window (za kameru)

Private Sub Form_Load()
Timer1.Enabled = False 'timer za fremove
Me.Width = 645 * Screen.TwipsPerPixelX
Me.Height = 500 * Screen.TwipsPerPixelY
Me.Caption = "WebCam"
'WS_CHILD Or WS_VISIBLE sluzi da window kamere bude child ove forme i vidljiv
'sledeca 4 parametra su pozicija x,y i sirina i visina, onda ide hwnd ovog pozora i ID koji window dobija (moze da bude 0)
hCam = capCreateCaptureWindow("MyCamWindow", WS_CHILD Or WS_VISIBLE, 0, 0, 640, 480, Me.hwnd, 0) 'kreiranje prozora za snimanje
SendMessage hCam, WM_CAP_DRIVER_CONNECT, 0, 0 'konektovanje drajvera
Timer1.Interval = 40 ' namestamo timer na 25 puta po sekundi
Timer1.Enabled = True ' i ukljucujemo ga
End Sub

Private Sub Form_Unload(Cancel As Integer)
SendMessage hCam, WM_CAP_DRIVER_DISCONNECT, 0, 0 ' diskonektovanje drajvera
End Sub

Private Sub Timer1_Timer()
SendMessage hCam, WM_CAP_GRAB_FRAME_NOSTOP, 0, 0 ' ova WinMsg iscrtava sliku u hCam prozoru
End Sub
Potpis
HomePage http://www.eurora3d.com
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme