Hallo,
ich hab' mir jetzt eine WebCam zugelegt. Zur Zeit versuche ich mich darin, die Bilder mit einem VB-Programm einzulesen. Als Vorlage habe ich leider nur ein Programm in C++, das aber ekelhaft viele API-Funktionen über DirectX aufruft. Hat jemand eine Idee, wie es einfacher geht?
Hier der VB-Code (Auszüge) zur ermittlung der Schwerpunkt-Koordinaten:
@storchi: Ich habe die ersten Experimente mit SCILAB gemacht. Damit kann man sicher gut Versuche anstellen. Vielen Dank noch einmal für den Hinweis auf das Tutorial.Code:.... bmpOrig ist eine Bitmap und enhält das Bild. Dim mXRed As Integer, cXRed As Integer Dim mYRed As Double, cYRed As Integer Dim mXGreen As Integer, cXGreen As Integer Dim mYGreen As Double, cYGreen As Integer Dim x, y As Integer Dim c As Color Dim Hue As Integer Dim Saturation As Integer Dim Brightness As Integer For y = 0 To bmpOrig.Height - 1 For x = 0 To bmpOrig.Width - 1 c = bmpOrig.GetPixel(x, y) Hue = CInt(c.GetHue()) Saturation = CInt(c.GetSaturation() * 100) Brightness = CInt(c.GetBrightness() * 100) If (Hue > 355 Or Hue < 5) And (Saturation > 70) And Brightness > 35 Then 'roter Punkt, Farbwert (Hue) zwischen 355 .. 360 / 0 .. 5 mXRed += x 'Summe der x-Koordinaten mit roten Pixel mYRed += y cXRed += 1 'Anzahl der x-Koordinaten mit rotem Pixel cYRed += 1 ElseIf (Hue > 105 Or Hue < 120) And (Saturation > 70) And Brightness > 35 Then 'grüner Punkt, Hue zwischen 105 .. 120 mXGreen += x mYGreen += y cXGreen += 1 cYGreen += 1 Else 'irgendeine andere Farbe End If Next Next mXRed = CInt(mXRed / cXRed) 'Mittelwert der x-Koordinaten mit rotem Pixel = x-Koordinate des Schwerpunkts mYRed = CInt(mYRed / cYRed) mXGreen = CInt(mXGreen / cXGreen) mYGreen = CInt(mYGreen / cYGreen)
Gruß Red Baron







Zitieren

Lesezeichen