1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Hanowde

Beiträge von Hanowde

  • Dringende Hilfe brauche - Optical Flow zw. zwei Bildern mit OpenCV zu berechen

    • Hanowde
    • 21. Oktober 2014 um 16:34

    ha......o....k.....sorry...

  • Dringende Hilfe brauche - Optical Flow zw. zwei Bildern mit OpenCV zu berechen

    • Hanowde
    • 21. Oktober 2014 um 15:06

    Guten Tag, Alle

    Ich bin Anfänger für OpenCV und möchte ein paar Beispiele von den Funktionen testen.

    Ich habe grad ein Problem mit der Berechnung des optischen Flusses zwischen 2 Bildern und komme grad mit meinem Code nicht weiter.

    Mein Code:

    C
    //#include "StdAfx.h"
    #include <opencv/cv.h>
    #include <opencv/cxcore.h>
    #include <opencv/highgui.h>
    #include <stdio.h>
    #include <stdlib.h>
     
    const int MAX_CORNERS = 500;
    int main(int argc, char** argv) {
       // Initialize, load two images from the file system, and
       // allocate the images and other structures we will need for
       // results.
        //
        IplImage* imgA = cvLoadImage("webcam001.png", CV_LOAD_IMAGE_GRAYSCALE);
        IplImage* imgB = cvLoadImage("webcam002.png", CV_LOAD_IMAGE_GRAYSCALE);
        CvSize img_sz = cvGetSize( imgA );
        int win_size = 10;
        IplImage* imgC = cvLoadImage("OpticalFlow1.jpg",CV_LOAD_IMAGE_UNCHANGED);
    
        // The first thing we need to do is get the features
        // we want to track.
        //
        IplImage* eig_image = cvCreateImage( img_sz, IPL_DEPTH_32F, 1 );
        IplImage* tmp_image = cvCreateImage( img_sz, IPL_DEPTH_32F, 1 );
        int corner_count = MAX_CORNERS;
        CvPoint2D32f *cornersA = new CvPoint2D32f[MAX_CORNERS];
        cvGoodFeaturesToTrack(
            imgA,
            eig_image,
            tmp_image,
            cornersA,
            &corner_count,
            0.01,
            5.0,
            0,
            3,
            0,
            0.04
        );
        cvFindCornerSubPix(
            imgA,
            cornersA,
            corner_count,
            cvSize(win_size,win_size),
            cvSize(-1,-1),
            cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03)
        );
        // Call the Lucas Kanade algorithm
        //
        char features_found[ MAX_CORNERS ];
        float feature_errors[ MAX_CORNERS ];
        CvSize pyr_sz = cvSize( imgA->width+8, imgB->height/3 );
        IplImage* pyrA = cvCreateImage( pyr_sz, IPL_DEPTH_32F, 1 );
        IplImage* pyrB = cvCreateImage( pyr_sz, IPL_DEPTH_32F, 1 );
        CvPoint2D32f *cornersB = new CvPoint2D32f[MAX_CORNERS];
      cvCalcOpticalFlowPyrLK(
         imgA,
         imgB,
         pyrA,
         pyrB,
         cornersA,
         cornersB,
         corner_count,
         cvSize( win_size,win_size ),
         5,
         features_found,
         feature_errors,
         cvTermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 20, .3 ),
         0
      );
      // Now make some image of what we are looking at:
      //
      for( int i=0; i<corner_count; i++ ) {
         if( features_found[i]==0|| feature_errors[i]>550 ) {
     //       printf("Error is %f/n",feature_errors[i]);
            continue;
         }
     //    printf("Got it/n");
         CvPoint p0 = cvPoint(
            cvRound( cornersA[i].x ),
            cvRound( cornersA[i].y )
         );
         CvPoint p1 = cvPoint(
            cvRound( cornersB[i].x ),
            cvRound( cornersB[i].y )
         );
         cvLine( imgC, p0, p1, CV_RGB(255,0,0),2, CV_AA, 0 );
      }
      cvNamedWindow("ImageA",0);
      cvNamedWindow("ImageB",0);
      cvNamedWindow("LKpyr_OpticalFlow",0);
      cvShowImage("ImageA",imgA);
      cvShowImage("ImageB",imgB);
      cvShowImage("LKpyr_OpticalFlow",imgC);
      cvWaitKey(0);
      return 0;
    }
    Alles anzeigen


    Fehlermeldung nach Kompilieren:

    [Blockierte Grafik: http://www11.pic-upload.de/21.10.14/l8d6z89kaawk.png]


    Kann mir jemand bitte helfen, um das Problem zu lösen? :/

    Vielen Dank!

    LG, Carvin

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™