Facem un detector de mișcare bazat pe o cameră web

Vreau să vă spun despre cum să creați un program fără cheltuieli speciale, care, cu rafinamentul corespunzător, pot deveni o altă frontieră pentru protecția casei dumneavoastră.






Vorbesc despre un detector de mișcare, care este format din două părți - camera web (sau orice alt dispozitiv similar), precum și programul, care va prelua funcția de detector de mișcare, sirena și altele.

Pentru semințe, vă propun să vă uitați la o versiune ceva mai avansată, care sa dovedit a fi pentru mine - animație GIF.

Pentru a crea un program, trebuie să aveți la îndemână componentele Delphi \ C ++ Builder și VisionLab.
În acest articol voi descrie implementarea funcțiilor de bază necesare pentru acest tip de program. În sine, pentru a crea un detector care să vă satisfacă exact nevoile dvs., veți avea nevoie de abilități pentru a lucra cu IDE în cauză.

Pur și simplu, vă voi arăta cât de ușor este să faceți un detector de mișcare, dar nu voi oferi instrucțiuni detaliate pentru scrierea unui program cu drepturi depline. acest lucru depășește cu mult domeniul de aplicare al unui articol.

Deci, hai să mergem. Începeți construirea, creați un nou proiect
Fișier | Nou | cerere

Facem un detector de mișcare bazat pe o cameră web

Pe ecran apare o formă goală pe care sunt transferate componentele VisionLab:
VLDSCapture
VLMotionDetect
VLImageDisplay (2 instanțe)

Puteți schimba dimensiunea formularului și puteți muta componentele în jurul acestuia în modul dorit. Forma mea a arătat astfel:

Facem un detector de mișcare bazat pe o cameră web

Acum trebuie să configuram componentele. Pentru a face acest lucru, selectați VLDSCapture1 (doar făcând clic pe el) și în fereastra "Object Inspector" căutăm proprietatea OutputPin.
Faceți clic pe butonul cu trei puncte.

Veți vedea acest dialog:

Facem un detector de mișcare bazat pe o cameră web

Așezați casetele de selectare după cum se arată în imagine și faceți clic pe OK.

Selectați VLMotionDetect1. În fereastra "Object Inspector", căutăm din nou proprietatea OutputPin și faceți clic pe butonul cu trei puncte.

În dialogul deschis, aranjați casetele de selectare după cum se arată în imagine și faceți clic pe OK.

Facem un detector de mișcare bazat pe o cameră web

Felicitări, tocmai ați creat un detector de mișcare bazat pe o cameră web! Acum vom adăuga noi caracteristici.







Puteți modifica dimensiunea câmpului, ceea ce afectează sensibilitatea generală a detectorului și setați sensibilitatea fiecărei celule, subliniind-o și apăsând 0-9.

Facem un detector de mișcare bazat pe o cameră web

Această metodă nu este potrivită pentru utilizarea permanentă, deci adăugăm posibilitatea de a controla sensibilitatea în timpul executării programului, scriind prima noastră linie (!) În acest program.

Pentru aceasta, în fila Standard a paletei componente, găsiți și transferați componenta butonului în formular. Acesta este un buton simplu pe care toți utilizatorii de PC-uri l-au văzut de mai multe ori. Selectând butonul din formular, puteți modifica inscripția pe ea (proprietatea Caption) în fereastra Inspector de obiecte.

  • Mu nu a editat o dată proprietățile componentelor prin intermediul Object Inspector fereastra, astfel încât în ​​viitor, spunând, „Editare proprietăți“ Vreau să spun prin editarea Object Inspector. De asemenea, reamintim că editarea proprietăților componentelor, aceasta include o alocare obligatorie a unui clic, înainte de a începe.

    VLMotionDetect1 -> MotionGrid -> ShowDialog # 40; # 41; ;

    astfel codul sursă ar trebui să arate astfel:

    Facem un detector de mișcare bazat pe o cameră web

    Compilați programul dvs. (F9) și faceți clic pe buton. Veți vedea dialogul de setare a sensibilității detectorului deja familiar.

    fișier jurnal
    Acum adăugăm capacitatea de a salva date pe patratele în care sa observat mișcarea.

    Din fila Standard din paleta de componente, mutați componenta Memo în formular.
    Schimbați proprietatea ScrollBars setând valoarea în ssVertical

    Puteți edita conținutul ferestrei în mod implicit utilizând proprietatea Liniile

    Selectați componenta VLMotionDetect1 făcând clic pe ea și schimbând proprietatea SynchronizeType, setând-o la stQueue
    Nu închideți inspectorul de obiecte, ci mergeți la fila Evenimente.

    astfel codul sursă va arăta astfel:

    Facem un detector de mișcare bazat pe o cameră web

    Compilați-vă programul (F9). Când începe aplicația, veți vedea că programul raportează acum pătratul în care a fost observată mișcarea.

    De exemplu, am un astfel de program.

    Ololo, trebuie să faci programe pe o mașină Turing din lemn, un avion și un topor.
    Aici este! Handwork, eleganta de realizare, Art! Un card de pumn și toate celelalte metode care nu reinvestează roata, în cuptor, este o rușine și o rușine.

    Probabil încă mai credeți că vânătorul care ucide ursul cu ajutorul unei arme și a unui laic nu este de neconceput. Un vânător adevărat este doar unul care rupe un urs cu mâinile goale;)

    Oaspete (neprezentate) -

    Tocmai ai descărcat programul altcuiva. Chiar dacă ați adăugat un pic de design, nu a devenit a ta. Ați pus doar pe cel finit, fără a crea nimic propriu. Aceasta nu este programare, ci doar design.

    Vinapi prea este imposibil juzat? Chiar și sintaxa invocabilă a masei? Unde este granița, ce poate fi folosit și ce nu este?

    Corect scrise mai jos, aveți un concept ciudat despre profesie.

    tabier (necertificat) - 19.02.11

    Ea nu acorde atenție la tuporezov, acest program se face într-un mediu vizual, de ce scrie componentele dacă acestea au fost deja făcute, Nájera deșeuri de timp dacă vă rezolva problema, puteți utiliza componentele în prealabil deja făcute aici pentru a vedea prețurile de lucru este un limbaj vizual, iar dacă aveți de gând să scrie fiecare buton formează fiecare o componentă, cretinule unchiul)

    Constantin (nu este verificat) - 21/02/11

    Vă mulțumim pentru articol și pentru îndrumările privind componentele.
    PS. Unii au cu adevărat o idee ciudată despre programatori, profesie și rușine.

    Alexey Batkovich (nu este verificat) - 21/02/11

    Oaspete (neprezentate) -

    După rularea programului compilat, eroarea 0xc0000005 apare de două ori și se termină - ce poate fi cazul, Admin My)))?

    Oaspete (neprezentate) -

    Alexander (nu este confirmat) - 28.08.13

    Puteți urmări modificările în zona ecranului monitorului prin intermediul acestor componente?







    Articole similare

    Trimiteți-le prietenilor: