Bonjour,
J'ai fais un programme en opencv qui sert de'afficher une image de la convertie en niveau de gris , de calculer les pixels , maint j'ai ajouter un fonction qui fait le contour mais ça marche pas voici le code ,
Quelqu'un peut m'aider
#include <opencv/cv.h>
#include <opencv/highgui.h>
IplImage *imgRgb;
IplImage *imgGrs;
IplImage *imgBin;
IplImage* cannyImg;
int seuil;
int inverser;
void initialiserSysteme()
{
imgRgb = cvCreateImage(cvSize(256, 256), 8, 3);
imgGrs = cvCreateImage(cvSize(256, 256), 8, 1);
imgBin = cvCreateImage(cvSize(256, 256), 8, 1);
IplImage* canny = cvCreateImage(cvGetSize(imgGrs),IPL_DEPTH_8U,1) ;
}
void chargerImage(char *nom)
{
IplImage *tmp = cvLoadImage(nom, CV_LOAD_IMAGE_COLOR);
cvResize(tmp, imgRgb, CV_INTER_LINEAR);
cvReleaseImage(&tmp);
}
void afficherImage()
{
cvShowImage("imgRgb", imgRgb);
cvShowImage("imgGrs", imgGrs);
cvShowImage("imgBin", imgBin);
cvShowImage( "canny", cannyImg );
cvWaitKey(0);
}
void contour()
{
cannyImg = cvCreateImage(cvGetSize(imgGrs), IPL_DEPTH_8U, 1);
cvCanny(imgGrs, imgGrs, 100, 100, 3);
//cvCvtColor( imgGrs, imgGrs, CV_BGR2GRAY );
}
void convertirImage()
{
cvCvtColor(imgRgb, imgGrs, CV_BGR2GRAY);
}
void lirePixel(int event, int x, int y, int flags, void* param)
{
switch(event)
{
case CV_EVENT_LBUTTONDOWN:
int pixVal = (int)cvGetReal2D(imgGrs, y, x);
printf("imgGrs: x = %d, y = %d, pix = %d\n", x, y, pixVal);
break;
}
}
void identifierPixel()
{
cvNamedWindow("imgRgb", CV_WINDOW_AUTOSIZE);
cvNamedWindow("imgGrs", CV_WINDOW_AUTOSIZE);
cvNamedWindow("canny",1);
cvSetMouseCallback("imgRgb", lirePixel, 0);
cvSetMouseCallback("imgGrs", lirePixel, 0);
}
void binariserImage(int smin, int smax)
{
cvThreshold(imgGrs, imgBin, smin, 255, CV_THRESH_TOZERO);
cvThreshold(imgBin, imgBin, smax, 255, CV_THRESH_TOZERO_INV);
cvThreshold(imgBin, imgBin, 10, 255, CV_THRESH_BINARY);
//cvNot(imgBin, imgBin);
}
int main(int argc, char** argv )
{
initialiserSysteme();
chargerImage("image/oiseaux.jpg");
void contour();
convertirImage();
identifierPixel();
binariserImage(130, 250);
afficherImage();
return 0;
}
Afficher la suite