Bonjour,
Je souhaiterai appliquer un kernel sur une image et donc effectuer un filtrage de mon image. Je voudrais savoir si on peut appliquer des tailles de kernel quelconque.
C'est a dire je veux faire ceci:
Est ce que c'est possible deja ? Et est ce que le résultat va bien etre le gradiant de l'image selon X et Y?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 IplImage* img = cvLoadImage("input.jpg", 0); IplImage* GradiantX=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); double a[9]={ -1, 0 ,1}; CvMat kX; cvInitMatHeader( &kX, 1, 3, CV_64FC1, a ); CvMat kY; cvInitMatHeader( &kY, 1, 3, CV_64FC1, a ); cvFilter2D( img ,GradiantX, &kX,cvPoint(-1,-1)); cvSaveImage("filteredX.jpg",GradiantX); cvFilter2D( img ,GradiantY, &kY,cvPoint(-1,-1)); cvSaveImage("filteredY.jpg",GradiantY);
D'avance merci.
Partager