Español
Fuente/ Codesnippets

Bewegungsmelder Webcam Kamera escapi.dll prospeed.dll

 

Walter
Ein Bewegungsmelder encima Webcam, einbaubar en propio Anwendungen.
Base es  [...] 
y el Anregung en  [...]  o.  [...]  , prospeed.dll para el Vergleich el Webcam-Bilder utilizarse.
 $H Windows.ph
' Bewegungsmelder
' Walter, 29.4.2023
' Der Bewegungsmelder zeigt al Bildschirm en el Sekundentakt Bilder de el Laptop-Kamera a Kontrolle/Einstellung el Empfindlichkeit.
' Das jeweilige Bild se en Los cambios para vorigen Bild geprüft (Toleranz para Änderung / Anzahl el geänderten Pixel).
' Wird en más que el eingestellten Anzahl Pixeln el eingestellte Toleranz überschritten, es una Meldung.
'
' Ab el Drücken de Button START voluntad en cada erkannten Veränderung
' Bild-Nr, Datum y Uhrzeit en el Bild geschrieben y el Foto en el Programmordner gespeichert.
' (El Bilder voluntad no automáticamente gelöscht, sin embargo beim nächsten Start des Programms überschrieben).
' (Das alles lässt se natürlich a el eigenen Wünsche adaptar - dazu sí el Source :+D--).
' Hier es eingestellt 1 Bild pro Sekunde, Breite/Höhe 640*480
'
' Base es "https://XProfan.net/intl/de/quelltexte/webcam-laptop-kamera-snapshot-escapi-dll/"
' y el Anregung en "https://XProfan.net/intl/de/cafe/bewegungsmelder-programa-mithilfe-uno-webcam/" o. "https://XProfan.net/intl/de/anwendungen/webcam-bewegungsmelder/",
' prospeed.dll para el Vergleich el Webcam-Bilder utilizarse.
'
' Benötigt Escapi.dll V3 Win32
'          Windows.ph
'          prospeed.dll
'
declarar dll1&,AnzCam%,capture#,a%,b%,name$
declarar dll2&,ZweitesBild#, x&,AnzBy&,Tol&
declarar b1%,b2%,t%,ed1%,ed2%,m%
declarar hBMP%,BildBuffer#
declarar pfad$,i%,Startverzögerung%,Ende%,se ejecuta%, Bewegungen%,zeit!,dauer!,HiebeProBew%
'
pfad$=GetDir$("")
Startverzögerung%=3
'
'
' Bildbuffer
AnzBy&=1228800
dim BildBuffer#,AnzBy&' 640*480*4 Byte
dim ZweitesBild#,AnzBy&
'
' Schnittstellenstruktur para escapi.dll
struct Bild=buff%%,mWidth&,mHeight&' Pointer en el Bild-Buffer, Ancho de imagen, 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")
'
'
'
'
'-------------------------------------------
Título de la ventana "Bewegungsmelder"
window 700,700
CLS ~GETSYSCOLOR(15)
'
' Toleranz
create("Text",%hwnd,"Toleranz para veränderte Pixel",20,503,200,25)
ed1%=Crear("Edit",%hwnd,"200",220,500,40,20)
Crear("Tooltip",%hwnd,ed1%,"Etwa 200...300 es en me una guter Valor.")
create("Text",%hwnd,"Anzahl veränderter Pixel außerhalb Toleranz",300,503,300,25)
ed2%=Crear("Edit",%hwnd,"100",620,500,40,20)
Crear("Tooltip",%hwnd,ed2%,"Etwa 100 es en me una guter Valor.")
t%=create("Text",%hwnd,"",20,550,400,25)
'
b2%=create("Button",%hwnd,"Start",450,550,80,25)
Crear("Tooltip",%hwnd,b2%,"Ab START se en cada erkannten Bewegung una 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
'
'
' Kamera einschalten (escapi.dll)
' messagebox(str$(ESCAPIDLLVersion()),"Escapi Version",0)
AnzCam%=countCaptureDevices()
name$=space$(1024)
' messagebox("Anzahl Kameras gefunden: "+str$(AnzCam%),"Anzahl",0)
getCaptureDeviceName(0,addr(name$),1024)' Kamera Nr. 0
' messagebox(name$,"Kamera gewählt",0)
a%=initCapture(0, addr(capture#))
'
'
'
läuft%=0
ende%=0
Bewegungen%=0
i%=1
Settimer 1000' Sekundentakt
Mensajes del usuario $10' Abbruch übers Windows-Cruz
'
'

whilenot ende%

    waitinput

    if %UMessage = $10' Abbruch übers Windows-Cruz

        ende% = 1

    elseif %wmtimer

        settext m%,""

        if i%>1

            ' Das vorige Bild se en ZweitesBild# gemerkt
            ZweitesBild#=BildBuffer#

        endif

        if a%>0

            b%=doCapture(0)

        endif

        if b%>0

            mientras que isCaptureDone(0)=0

            wend

        endif

        hBMP% = ~CreateBitmap(capture#.mWidth&, capture#.mHeight& , 1 , 32 , BildBuffer#)' Mapa de bits de el Bufferdaten erzeugen
        DrawPic hBMP%, 20, 0; 0' Kontrollbild al Bildschirm
        tol&=val(gettext$(ed1%))'Toleranz einlesen

        if i%>Startverzögerung%' eingestellt son 3 Sekunden, Luego se 1 x pro Sekunde verglichen

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

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

                beep
                settext m%,"Bewegung erkannt: "+str$(x&)+" Pixel son verändert."

                if se ejecuta%=1

                    inc Bewegungen%
                    BildBeschriftenSpeichern

                endif

            endif

        endif

        sleep 10
        ~DeleteObject(hBMP%)'Speicher de Mapa de bits liberación
        inc i%

    elseif clicked(b1%)' Abbruch-Button

        ende%=1

    elseif clicked(b2%)' Start gedrückt

        se ejecuta%=1
        settext t%,"Bei cada erkannten Bewegung se una Bild gespeichert."

    endif

Wend

liberación
end
'
'
'-------------------------------

proc BildBeschriftenSpeichern

    '-------------------------------
    ' Bild Nr, Datum y Tiempo en el Bild escribir
    ' Bild speichern
    ' Nr, Datum y Uhrzeit en el Bild escribir
    startpaint hBMP%
    drawtext 0, 0, "Nr. "+str$(Bewegungen%) + "  " + dt("getDate",0)+"  "+dt("getTime", 2)
    endpaint
    ' Bild speichern
    savepic pfad$+"\\Bew."+format$("000.",Bewegungen%)+".jpg",hBMP%,75

ENDPROC' BildBeschriftenSpeichern

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

proc Freigeben

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

ENDPROC' Freigeben

 
30.04.2023  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.006 Views

Untitledvor 0 min.
H.Brill04.08.2024
Heiko Dix30.10.2023
Sven Bader11.08.2023
Walter12.07.2023
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

Walter (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie