OpenCV

Dieses Thema im Forum "Informatik" wurde erstellt von Smacksmash, 1 Juni 2007.

  1. Hallo!

    Ich möchte in OpenCV Bilder von einer Webcam capturen und dabei ein Objekt mit einem Rechteck markieren, das später erkannt und mit einer Umrandung "verfolgt" werden soll. Hier mein Skript bisher:

    #include "stdafx.h"
    #include "cv.h"
    #include "highgui.h"

    int _tmain(int argc, _TCHAR* argv[])
    {

    CvCapture *avi = cvCaptureFromCAM(-1);
    CvVideoWriter *writer= cvCreateVideoWriter("outputvideo.avi", -1, 15.0, cvSize(320,240));

    cvNamedWindow( "Capture", CV_WINDOW_AUTOSIZE);

    bool stop = false;
    while(!stop) {
    IplImage* img = cvQueryFrame(avi);
    if (!img){
    break;
    }

    static void on_mouse(int event, int x, int y, int flags, void* param){
    if (event == CV_EVENT_LBUTTONDOWN){
    polygon[cornercount++] = cvPoint(x,y);
    if (cornercount == CORNERMAX){
    cvPolyLine(img, &polygon, cornercount,1,1,CV_RGB(255,0,0));
    cvFillPoly(img, &polygon, &cornercount,1,CV_RGB(255,0,0));
    cornercount=0;
    }
    }
    }

    cvShowImage("Testbild", img );

    int key = cvWaitKey(100);
    if (key != -1)
    stop = true;
    }
    cvReleaseCapture(&avi);
    cvReleaseVideoWriter(&writer);
    cvDestroyWindow( "Capture" );
    return 0;
    }

    Dabei zeigt er mir einen Fehler hinsichtlich statischer Funktionen an. Wie bekomme ich den weg? Sicher muss ich dafür die Static-Funktion zuvor deklarieren, aber wo?

    Vielen Dank, Elli.
     
Schlagworte:

Diese Seite empfehlen