[gelöst][Anfänger] opencv cvloadimage(argv[1]) too few arguments to function



  • Hallo c-Community,

    ich arbeite mich derzeit in OpenCV ein. Leider bin ich nur ein Anfänger, was zu ein paar Problemen führt. Derzeit versuche ich ein Bild mit OpenCV zu laden und verwende dabei den Befehl:

    IplImage* img = 0;
    img = cvLoadImage(argv[1]);
    

    Diese Art der Verwendung habe ich beispielsweise hier http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html gefunden. Beim Compilieren

    gcc -o ocvfunctest ocvfunctest.c -lcv -lhighgui

    kommt jetzt folgende Fehlermeldung:

    ocvfunctest.c: In function ‘main’:
    ocvfunctest.c:15: error: too few arguments to function ‘cvLoadImage’

    Eigentlich bin ich der Meinung, dass ich alles richtig gemacht habe. Dieser Meinung scheint aber der Compiler nicht zu sein. Wo habe ich hier einen Fehler gemacht?

    MfG
    mirrowwinger



  • Zeig bitte ein - bis auf den Fehler - kompilierbares Minimalbeispiel. Wenn sich nicht das API geaendert hat, sollte das an sich halbwegs passen.



  • Da ich gerade angefangen hab mit OpenCV rumzuexperimentieren, ist der derzeitige Stand quasi das Mini-Beispiel. Unter Ubuntu bekomme ich mit dem oben angegebenen Compilerbefehl (gcc ...) die angesprochene Fehlermeldung

    #include "OpenCV-2.0.0/include/opencv/cv.h"
    #include "OpenCV-2.0.0/include/opencv/highgui.h"
    #include "stdio.h"
    #include "error.h"
    
    int main(int argc, char **argv)
    {
    	if (argc <= 1)
    	{
    		Error_Missing_File();
    	}
    	else
    	{
    		IplImage* img = 0;
    		img = cvLoadImage(argv[1]);
    		if (!img)
    		{
    			printf("Error:\tImage %s not found\n", argv[1]);
    			return -1;
    		}
    
    		cvNamedWindow("OpenCV-Function-Test", CV_WINDOW_AUTOSIZE);
    		cvShowImage("OpenCV-Function-Test", img);
    
    		cvWaitKey(0);
    
    	}
    	return 0;
    }
    

    mirrowwinger



  • Hol dir mal das Paket opencv-doc und schau nach /usr/share/doc/opencv-doc/examples/c falls du Ubuntu benutzt.

    Offenbar ist der Default-Parameter fuer das zweite Argument von cvLoadImage irgendwann entfleucht, wenn du da explizit 0 angibst, funktioniert alles.

    Das hier kompiliert bei mir:

    #include <opencv/cv.h>
    #include <opencv/highgui.h>
    #include <stdio.h>
    
    int main(int argc, char **argv)
    {
        if (argc != 2)
          printf("Usage: %s IMAGE\n", argv[0]);
    
        else
        {
            IplImage* img = 0;
            img = cvLoadImage(argv[1], 0);
            if (!img)
            {
                printf("Error:\tImage %s not found\n", argv[1]);
                return -1;
            }
    
            cvNamedWindow("OpenCV-Function-Test", CV_WINDOW_AUTOSIZE);
            cvShowImage("OpenCV-Function-Test", img);
    
            cvWaitKey(0);
    
        }
        return 0;
    }
    

Anmelden zum Antworten