- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 91

Thema: Vision-Erkennung bei Bestückungsautomaten

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #34
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Finde ich wirklich schön, dass da noch Leute mitlesen!

    Zwischenstand heute:

    OpenCV läuft nun mit dem VisualStudio und ich konnte ein paar Tests machen. als Ausgangsbild habe ich die vorhandenen Bilder genutzt. Das Farbbild wird in ein Graustufenbild gewandelt welches dann auf zwei Farben umgesetzt wird. Dazu nutze ich momentan einen festgelegten Threshold der dann im fertigen Programm irgendwann in der Kalibrierung automatisch ermittelt werden soll. auf das Bild wende ich dann die Kantendetektion an, die mir über die Matrix eine halbwegs gerade Linie zieht. Resultat:

    Graustufen: http://placerbot.org/OpenCV_test/L64...front_grey.jpg
    Graustufen mit Sobelfilter (Nicht verwendet, nur zur Anschauung): http://placerbot.org/OpenCV_test/L64...grey_sobel.jpg
    Schwarzweiß mit Threshold 120/255 : http://placerbot.org/OpenCV_test/L64...blackWhite.jpg
    Sobel über SW Bild: http://placerbot.org/OpenCV_test/L64...hite_sobel.jpg

    Wenn man den Chip richtig beleuchtet und das Lineal wegnimmt (ohne das stand der Chip leider nicht - die Nozzle wird schon alleine aufgrund der Schärfentiefe nicht mehr zu sehen sein) dann lässt sich da einiges machen. Ich muss sagen dass ich sehr zufrieden mit dem Ergebnis der Spielerei bin. Hätte mit diesem schlechten Ausgangsbild nicht annähernd so gute Ergebnisse erwartet.

    Für die Erkennung muss man sich dann noch die Region of Interest (ROI) heraussuchen und eine Beschreibungsdatei plus zugehöriger Datenstruktur ausdenken. Dann kann es an die Centroid Detection und den Algorithmus zur Kantendetektion gehen. Vielleicht hat OpenCV da auch etwas in Petto das ganz gut funktioniert. Das würde es um einiges einfacher machen! Später ist erstmal der Blitz dran

    Code (Schlimm, ich weiß - War aber sehr auf Ergebnisse erpicht!):
    Code:
        // Matrices to store the image file    
        Mat original, greyScale, blackWhite, sobelImg, blackWhiteSobel;
    
    
        // Params to save the images as jpeg
        vector<int> jpegParams;
        jpegParams.push_back(IMWRITE_JPEG_QUALITY);
        jpegParams.push_back(100);
        string fileName = "examples/L6470_light_front.jpg";
    
    
        // Read the input file
        original = imread(fileName);
        cvtColor(original, greyScale, COLOR_RGB2GRAY);
    
    
        //Save greyScale image
        imwrite("output_grey.jpg",greyScale,jpegParams);
    
    
        blackWhite = greyScale > THRESHOLD;
        namedWindow("Converted to BW image", WINDOW_AUTOSIZE);
        imshow("Converted to BW image", blackWhite);
        imwrite("output_blackWhite.jpg", blackWhite, jpegParams);
    
    
        Sobel(blackWhite, blackWhiteSobel, blackWhite.depth(), DERIVATIVE, DERIVATIVE, SOBELSIZE, 1, 0);
        namedWindow("Sobel applied to BW image", WINDOW_AUTOSIZE);
        imshow("Sobel applied to BW image", blackWhiteSobel);
        imwrite("output_blackWhite_sobel.jpg", blackWhiteSobel, jpegParams);
    
    
        
        Sobel(greyScale, sobelImg, greyScale.depth(), DERIVATIVE, DERIVATIVE, SOBELSIZE, 1, 0);
        imwrite("output_grey_sobel.jpg", sobelImg,jpegParams);
    
    
    
    
        waitKey(0);
    
    
        return 0;
    Geändert von einballimwas (01.02.2015 um 14:46 Uhr) Grund: Code eingefügt, zusätzliche Erklärungen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen