Bonjour,
j'essaye d'implementer un tout petit programme C++ basé sur OpenCv sous Windows 7 (64 bits) professionnel, compilateur Visual 2008.
Le code est minuscule :
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cv.h>
#include <highgui.h>
#include <cvaux.h>
#include <cxcore.h>
int main(int argc, char *argv[])
{
IplImage* img = 0;
char* fileName="chess.bmp";
img=cvLoadImage(fileName);
if(!img) printf("Could not load image file: %s\n",fileName);
cv::Mat image(img);
cv::Size patternSize=cvSize(4,4);
std::vector<cv:oint2f> corners;//(9);
bool pwf=false;
int flags=cv::CALIB_CB_ADAPTIVE_THRESH;
pwf=cv::findChessboardCorners(image,patternSize,corners,flags);
cv::drawChessboardCorners(image,patternSize,(cv::Mat) corners,pwf);
// create a window
cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
cvMoveWindow("mainWin", 100, 100);
// show the image
*(img)=image;
cvShowImage("mainWin", img );
// wait for a key
cvWaitKey(0);
// release the image
cvReleaseImage(&img );
return 0;
}
Mais ce programme plante honteusement lorsqu'il arrive a la fonction findChessboardCorners....en particulier, si on debuggue, on peut voir que corners a ete construit avec enormement de coordonnees (ce qui est faux bien sur). Et meme si l'on contraint la taille de corners a la construction, le progamme buggue....
Merci vraiment pour votre aide...
Thomas
Partager