Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Winkelerkennung mit Webcam für Bauelemente (https://www.delphipraxis.net/165916-winkelerkennung-mit-webcam-fuer-bauelemente.html)

hedie 21. Jan 2012 15:09

Winkelerkennung mit Webcam für Bauelemente
 
Guten Tag zusammen

Ich habe eine frage, ist es mit verhältnismässig geringem Aufwand möglich, den Winkel bzw. die Ausrichtung eines Objektes mit einer Webcam zu erkennen?

Es geht darum, die Ausrichtung eines Bauteils mittels Webcam zu erkennen.

Das einzige was im Bild scharf dargestellt ist, ist das Bauteil. Alles andere ist verschwommen...

Gibt es dazu bereits irgendwelche Libs oder DLL's um Objekte innerhalb eines Bildes erkennen zu können?


Danke schonmal für eure Tipps :)

Gruss
Claudio

jfheins 21. Jan 2012 15:34

AW: Winkelerkennung mit Webcam für Bauelemente
 
Falls der Preis keine Rolle spielt: Halcon :mrgreen:

Damit geht sowas: http://www.halcon.de/halcon/applicat...h-01-large.gif
(Nachdem die 3D Daten zur Verfügung stehen)

hedie 21. Jan 2012 18:54

AW: Winkelerkennung mit Webcam für Bauelemente
 
Danke für deine Antwort :)

Nun weiss ich wenigstens dass es irgendwie geht hehe :)

Der Preis spielt natürlich schon eine wesentliche rolle... Am liebsten kostenlos :)


Es geht mir hier nicht um Präzisionsmessungen sondern mehr darum das Bauteil so genau wie mit einfachen mitteln möglich auszurichten...

jfheins 21. Jan 2012 21:35

AW: Winkelerkennung mit Webcam für Bauelemente
 
welche form hat das objekt? ist das problem zweidimensional?

hedie 21. Jan 2012 22:14

AW: Winkelerkennung mit Webcam für Bauelemente
 
Ja das problem ist lediglich 2 dimensional

jfheins 22. Jan 2012 10:03

AW: Winkelerkennung mit Webcam für Bauelemente
 
Also ich habe da mal Code geschrieben, um die Ausrichtung eines Rechtecks zu bestimmen. Heraus kam dann der Winkel in dem das Rechteck steht.

Das ganze habe ich über eine Hauptachsentransformation realisiert, aber es kann gut sein dass es da noch einfachere Lösungen gibt ....

hedie 23. Jan 2012 16:13

AW: Winkelerkennung mit Webcam für Bauelemente
 
Kannst du mir da noch ein paar Tipps geben?

jfheins 23. Jan 2012 18:46

AW: Winkelerkennung mit Webcam für Bauelemente
 
Das Programm ist in C# geschrieben, hier mal der wesentliche Code:
PHP-Quellcode:
        private void CalcAngle(ref CalcInfo img)
        {
            // Flächenmomente ermitteln
            double Ixy = 0,
                Ixx = 0,
                Iyy = 0;

            for (int y = 0; y < img.Height; y++)
            {
                for (int x = 0; x < img.Width; x++)
                {
                    // Über alle Pixel des Bildes iterieren
                    if (img.rgbValues[y * img.Width + x] == img.color) // Falls der Pixel zum Objekt gehört
                    {
                        // Momente 2. Ordnung
                        Ixx += (y - img.CenterY) * (y - img.CenterY); // CenterXY beschreibt den Flächenmittelpunkt
                        Iyy += (x - img.CenterX) * (x - img.CenterX);
                        Ixy += (x - img.CenterX) * (y - img.CenterY);
                    }
                }
            }

            // Winkel berechnen
            double phi = Math.Atan2(2 * Ixy, Iyy - Ixx);
            img.Angle = -0.5 * phi;
        }
Vorher muss noch der Schwerpunkt berechnet werden. Der Winkel der errechnet wird, beschreibt die Neigung der ersten Hauptachse ("Längsachse") zur Waagerechten.

Zur Lage der Hauptachsen: http://de.wikipedia.org/wiki/Flächenträgheitsmoment

Jumpy 24. Jan 2012 09:12

AW: Winkelerkennung mit Webcam für Bauelemente
 
Ich hab neulich per Zufall ein (war es Youtube?)-Video gesehen. Da wurde Spielkonsolenzubehör (Eye-Toy oder das WII-Pandon) für sowas benutzt. Finde das aber gerade nicht.

bernhard_LA 24. Jan 2012 11:38

AW: Winkelerkennung mit Webcam für Bauelemente
 
das Bild mittels KantenFilter bearbeiten, dann kann man Hough Transformation auf das Kantenbild anwenden, man erhält bei Liniendetection den Winkel als Parameter

auf Sourge forge habe ich eine Demo, was fehlt im Demo Code:

gibt es viele Kanten im Bild , muss man man die relevanten aussortieren, Stichwort "NON MAXIMA SUPRESSION"

Ist bei Kaufsoftware natürlich dabei - noch nicht aber auf source forge :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz