Quelqu'un saurait il comment effectuer une convolution de Sharpen en OpenCV svp?
Version imprimable
Quelqu'un saurait il comment effectuer une convolution de Sharpen en OpenCV svp?
Je viens de trouver la matrice correspondante à Sharpen. Alors là je découvre l'utilisation d'une matrice sur une image (je découvre l'imagerie surtout!)
-1 -1 -1
-1 9 -1
-1 -1 -1
Comment faire pour l'appliquer dessus?
utilise cvFilter2D avec ta matrice
voila comment je l'ai utilisé :
et voila, a+Code:
1
2
3
4
5
6
7
8
9
10
11
12 CvMat* kernel = cvCreateMat(hauteur,largeur,CV_64FC1); // Initialisation de tous les pixels de kernel cvmSet(kernel,y,x,val); // on affecte la valeur que l'on veut à chaque pixel du kernel ... ... IplImage* imageFiltre = cvCreateImage(cvGetSize(image),IPL_DEPTH_32F,1); // initialisation du résultat du filtrage cvZero(imageFiltre ); // initialisation de tous les pixels à zéro cvFilter2D(image,imageFiltre,kernel); cvReleaseImage(&image); // on libère la mémoire de l'ancienne image cvReleaseMat(&kernel); // on libère la mémoire du kernel du filtrage
(ha pardon k3ops j'avais pas vu ta réponse pendant que je cherchais à utiliser cvFilter2D merci ! :yaisse2: )
Merci...J'espère que ça va marcher!
Du coup voici le code (qui m'a lair d'ailleurs moins compliqué que le tien k3ops ?!)
Code:
1
2
3
4
5 float sharpenValues[] = {-1,-1,-1, -1, 9,-1, -1,-1,-1}; CvMat sharpenMat = cvMat(3,3,CV_32FC1,sharpenValues); cvFilter2D(cvMilImage, cvMilImageProc, &sharpenMat, cvPoint(-1,-1));