1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#include <cv.h>
#include <highgui.h>
int main()
{
IplImage *img, *img_gris, *img_bin, *img_canny;
img=cvLoadImage("img.jpg");
cvNamedWindow("image", CV_WINDOW_AUTOSIZE);
cvShowImage("image", img);
img_gris=cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,1);
img_bin=cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,1);
img_canny=cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,1);
cvCvtColor(img,img_gris,CV_RGB2GRAY);
int seuil=110;
cvThreshold(img_gris, img_bin, seuil, 255, CV_THRESH_BINARY);
IplConvKernel *noyau;
noyau=cvCreateStructuringElementEx(3,3,2,2,CV_SHAPE_RECT);
cvErode(img_bin,img_bin,noyau,1);
cvDilate(img_bin,img_bin,noyau,1);
cvCanny(img_bin, img_canny, 100, 200);
cvLine(img_canny, cvPoint(0, img->height-15), cvPoint(img->width, 35), cvScalar (255), 1);
cvLine(img_canny, cvPoint(0, img->height), cvPoint(img->width,img->height-25), cvScalar(255),1 );
cvNamedWindow("image grise", CV_WINDOW_AUTOSIZE);
cvNamedWindow("image binaire", CV_WINDOW_AUTOSIZE);
cvNamedWindow("image canny", CV_WINDOW_AUTOSIZE);
cvShowImage("image grise", img_gris);
cvShowImage("image binaire", img_bin);
cvShowImage("image canny", img_canny);
cvWaitKey(0);
return 0;
} |