Français
Source/ Codesnippets

Bewegungsmelder Webcam caméra escapi.dll prospeed.dll

 

Walter
un Bewegungsmelder sur Webcam, einbaubar dans eigene Anwendungen.
la base ist  [...] 
et qui Anregung dans  [...]  bzw.  [...]  , prospeed.dll pour den comparaison qui Webcam-Bilder trop verwenden.
 $H Windows.ph
' Bewegungsmelder
' Walter, 29.4.2023
' qui Bewegungsmelder zeigt am Bildschirm im Sekundentakt Bilder aus qui Laptop-caméra zur Kontrolle/Einstellung qui Empfindlichkeit.
' cela jeweilige Bild wird sur Changements zum vorigen Bild geprüft (Toleranz pour Changement / Nombre de modifié Pixel).
' Wird chez plus que qui eingestellten Anzahl Pixeln qui eingestellte Toleranz überschritten, erfolgt une annonce.
'
' Ab dem Drücken de Button START volonté chez chacun erkannten Veränderung
' Bild-Nr, date et l'heure ins Bild geschrieben et cela photo im Programmordner gespeichert.
' (qui Bilder volonté pas automatisch gelöscht, cependant beim prochain Start des Programms überschrieben).
' (cela alles peut sich naturellement à qui eigenen Wünsche anpassen - en supplément oui qui Source :+D--).
' ici ist eingestellt 1 Bild pro seconde, Breite/Hauteur 640*480
'
' la base ist "https://XProfan.net/intl/de/quelltexte/webcam-laptop-caméra-snapshot-escapi-dll/"
' et qui Anregung dans "https://XProfan.net/intl/de/cafe/bewegungsmelder-programmieren-mithilfe-einer-webcam/" bzw. "https://XProfan.net/intl/de/anwendungen/webcam-bewegungsmelder/",
' prospeed.dll pour den comparaison qui Webcam-Bilder trop verwenden.
'
' Requiert Escapi.dll V3 Win32
'          Windows.ph
'          prospeed.dll
'
declare dll1&,AnzCam%,capture#,a%,b%,nom$
declare dll2&,ZweitesBild#, x&,AnzBy&,Tol&
declare b1%,b2%,t%,ed1%,ed2%,m%
declare hBMP%,BildBuffer#
declare pfad$,i%,Startverzögerung%,Ende%,fonctionne%, Bewegungen%,zeit!,la durée!,HiebeProBew%
'
pfad$=GETDIR $(»)
Startverzögerung%=3
'
'
' Bildbuffer
AnzBy&=1228800
dim BildBuffer#,AnzBy&' 640*480*4 Byte
dim ZweitesBild#,AnzBy&
'
' Schnittstellenstruktur pour escapi.dll
struct Bild=buff%%,mWidth&,mHeight&' Pointer sur den Bild-Buffer, Bildbreite, Bildhöhe
dim capture#,Bild
capture#.buff%%=addr(BildBuffer#)
capture#.mWidth&=640
capture#.mHeight&=480
'
' Escapi.dll
Def ESCAPIDLLVersion(0) !"escapi","ESCAPIDLLVersion"
Def countCaptureDevices(0) !"escapi","countCaptureDevices"
Def deinitCapture(1) !"escapi","deinitCapture"
Def doCapture(1) !"escapi","doCapture"
Def getCaptureDeviceName(3) !"escapi","getCaptureDeviceName"
Def initCOM(0) !"escapi","initCOM"
Def initCapture(2) !"escapi","initCapture"
Def isCaptureDone(1) !"escapi","isCaptureDone"
dll1&=usedll("Escapi.dll")
'
' Prospeed.dll
 $I Prospeed_Funktionen.inc
dll2&=usedll("prospeed.dll")
'
'
'
'
'-------------------------------------------
Titre de la fenêtre "Bewegungsmelder"
window 700,700
CLS ~GETSYSCOLOR(15)
'
' Toleranz
create("Text",%hwnd,"Toleranz pour veränderte Pixel",20,503,200,25)
ed1%=Créer("Edit",%hwnd,"200",220,500,40,20)
Créer("Tooltip",%hwnd,ed1%,"Etwa 200...300 ist chez mir un bon Wert.")
create("Text",%hwnd,"Anzahl veränderter Pixel außerhalb Toleranz",300,503,300,25)
ed2%=Créer("Edit",%hwnd,"100",620,500,40,20)
Créer("Tooltip",%hwnd,ed2%,"Etwa 100 ist chez mir un bon Wert.")
t%=create("Text",%hwnd,»,20,550,400,25)
'
b2%=create("Button",%hwnd,"Start",450,550,80,25)
Créer("Tooltip",%hwnd,b2%,"Ab START wird chez chacun erkannten Bewegung un Bild gespeichert..")
'
b1%=create("Button",%hwnd,"Ende",580,550,80,25)
m%=create("Text",%hwnd,»,20,600,400,20)
'
UseFont Arial,12,0,0,0,0
'
'
' caméra einschalten (escapi.dll)
' messagebox(str$(ESCAPIDLLVersion()),"Escapi Version",0)
AnzCam%=countCaptureDevices()
name$=space$(1024)
' messagebox("Anzahl Kameras trouvé: "+str$(AnzCam%),"Anzahl",0)
getCaptureDeviceName(0,addr(nom$),1024)' caméra Nr. 0
' messagebox(nom$,"Kamera gewählt",0)
a%=initCapture(0, addr(capture#))
'
'
'
läuft%=0
ende%=0
Bewegungen%=0
i%=1
Settimer 1000' Sekundentakt
Utilisateur Messages $10' Abbruch übers Windows-Croix
'
'

whilenot ende%

    waitinput

    si %UMessage = $10' Abbruch übers Windows-Croix

        ende% = 1

    elseif %wmtimer

        settext m%,»

        si i%>1

            ' cela vorige Bild wird dans ZweitesBild# gemerkt
            ZweitesBild#=BildBuffer#

        endif

        si a%>0

            b%=doCapture(0)

        endif

        si b%>0

            tandis que isCaptureDone(0)=0

            Wend

        endif

        hBMP% = ~CreateBitmap(capture#.mWidth&, capture#.mHeight& , 1 , 32 , BildBuffer#)' Bitmap aus den Bufferdaten erzeugen
        DrawPic hBMP%, 20, 0; 0' Kontrollbild am Bildschirm
        tol&=val(gettext$(ed1%))'Toleranz einlesen

        si i%>Startverzögerung%' eingestellt sommes 3 Sekunden, ensuite wird 1 x pro seconde verglichen

            '  Altes Bild wird avec neuem verglichen
            '  prospeed.dll: CompareBytes (B1,B2,A,T)
            x&=compareBytes(ZweitesBild#,BildBuffer#,AnzBy&,tol&)
            ' Auswertung

            si  x&>val(gettext$(ed2%))' Anzahl Bytes außerhalb qui Toleranz

                beep
                settext m%,"Bewegung erkannt: "+str$(x&)+" Pixel sommes modifié."

                si fonctionne%=1

                    inc Bewegungen%
                    BildBeschriftenSpeichern

                endif

            endif

        endif

        sleep 10
        ~DeleteObject(hBMP%)'grenier de Bitmap freigeben
        inc i%

    elseif clicked(b1%)' Abbruch-Button

        ende%=1

    elseif clicked(b2%)' Start gedrückt

        fonctionne%=1
        settext t%,"Bei chacun erkannten Bewegung wird un Bild gespeichert."

    endif

Wend

freigeben
end
'
'
'-------------------------------

proc BildBeschriftenSpeichern

    '-------------------------------
    ' Bild Nr, date et Zeit ins Bild écrivons
    ' Bild Sauver
    ' Nr, date et l'heure ins Bild écrivons
    startpaint hBMP%
    drawtext 0, 0, "Nr. "+str$(Bewegungen%) + "  " + dt("getDate",0)+"  "+dt("getTime", 2)
    endpaint
    ' Bild Sauver
    savepic pfad$+"\\Bew."+format$("000.",Bewegungen%)+".jpg",hBMP%,75

endproc' BildBeschriftenSpeichern

'
'
'-------------------

proc Freigeben

    '-------------------
    killtimer
    deinitCapture(0)
    dispose capture#, Bildbuffer#, ZweitesBild#
    freedll dll1&
    freedll dll2&
    ~DeleteObject(hBMP%)

endproc' Freigeben

 
30.04.2023  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.005 Views

Untitledvor 0 min.
H.Brill04.08.2024
Heiko Dix30.10.2023
Sven Bader11.08.2023
Walter12.07.2023
plus...

Themeninformationen

cet Thema hat 1 participant:

Walter (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie