2017-06-26 1 views
-2

J'essaie de charger une image, puis de la convertir en une échelle de gris, puis de l'enregistrer. J'utilise C et non C++ donc je ne peux pas utiliser dans Mat comme tous les autres messages (oui je les lis tous donc ne me dérange pas).Enregistrement d'une image avec openCv et c

J'ai vu que je devrais utiliser dans la fonction imwrite qui obtiennent 2 paramètres: le nom et l'IplImage.

Ceci est mon code:

#include <stdio.h> 
#include <string.h> 
#include <opencv2\core\core_c.h> 
#include <opencv2\highgui\highgui_c.h> 

int main(void) 
{ 
    IplImage* im_gray = cvLoadImage("pic.png", CV_LOAD_IMAGE_GRAYSCALE); 
    imwrite("outputGray.jpg", im_gray); 
} 

Je reçois cette erreur

Error 1 error LNK1120: 1 unresolved externals 

Qu'est-ce que je fait de mal?

Répondre

2

imwrite est la version C++, vous devez utiliser cvSaveImage qui a une signature comme celui-ci:

int cvSaveImage(const char* filename, const CvArr* image, const int* params=0) 

premier paramètre est le nom du fichier, second est l'image et une THRD est les options.

Votre code sera comme ceci:

#include <stdio.h> 
#include <string.h> 
#include <opencv2\core\core_c.h> 
#include <opencv2\highgui\highgui_c.h> 

int main(void) 
{ 
    IplImage* im_gray = cvLoadImage("pic.png", CV_LOAD_IMAGE_GRAYSCALE); 
    cvSaveImage("outputGray.jpg", im_gray); 
} 
+0

je me donne à quelques arguments pour SaveImage ... –

+0

@ mr.knowall il y a seulement deux arguments nécessaires, le troisième est en option – api55