vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Webcam: Bewegungsmelder 
Autor: GPM
Datum: 29.08.07 12:12

Hier werden bei mir die abweichenden Pixel zweier 680x680 24Bit-Bilder in 25 mSek erfasst.
Imports System.Runtime.InteropServices.Marshal
Imports System.Drawing.Imaging
Public Class Form1
    Dim bmp1 As New System.Drawing.Bitmap("C:\W-Intern\GPM.jpg")   ' 680x680 
    ' Pixel 
    Dim bmp2 As Bitmap = bmp1.Clone
    Function BmpDiff(ByVal b1 As Bitmap, ByVal b2 As Bitmap) As Int32
        If b1.Size <> b2.Size Then Return -1
        Dim rect As New Rectangle(0, 0, b1.Width, b1.Height)                    _
                   'bm-Abmessung
        Dim bd1 As BitmapData = b1.LockBits(rect, ImageLockMode.ReadWrite, _
        PixelFormat.Format24bppRgb)
        Dim bd2 As BitmapData = b2.LockBits(rect, ImageLockMode.ReadWrite, _
        PixelFormat.Format24bppRgb)
        Dim max As Int32 = (bd1.Stride * b1.Height) - 1                         _
                 ' (zeile*h)-1
        Dim fw1(max) As Byte, fw2(max) As Byte
        Copy(bd1.Scan0, fw1, 0, max)                                            _
                   ' bm ins array
        Copy(bd2.Scan0, fw2, 0, max)
        b2.UnlockBits(bd2)                                                      _
                   ' Sperre aufheben
        b1.UnlockBits(bd1)
        Dim diff As Int32                                                       _
                   ' Abweichung
        For x As Int32 = 0 To max - 3 Step 3
            If fw1(x) <> fw2(x) OrElse fw1(x + 1) <> fw2(x + 1) OrElse _
              fw1(x + 2) <> fw2(x + 2) Then
                diff += 1
            End If
        Next x
        Return diff
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click       
        Me.Text = BmpDiff(bmp1, bmp2).ToString()
    End Sub
End Class
MfG GPM
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Webcam: Bewegungsmelder2.608sound00check28.08.07 14:10
Re: Webcam: Bewegungsmelder2.258TheProof28.08.07 15:33
Re: Webcam: Bewegungsmelder1.838TheProof28.08.07 17:03
Re: Webcam: Bewegungsmelder1.902TobiasS28.08.07 18:57
Re: Webcam: Bewegungsmelder1.965sound00check28.08.07 21:34
Re: Webcam: Bewegungsmelder2.167TheProof29.08.07 11:14
Re: Webcam: Bewegungsmelder2.560TheProof29.08.07 11:33
Re: Webcam: Bewegungsmelder2.269GPM29.08.07 12:12

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel