Bonjour à tous,

J'essaie d'utiliser cvNorm avec un mask de 0 et de 1 afin de calculer la norme en ne prenant en compte que certains coefficients mais à l'éxécution, j'ai l'erreur suivante :

OpenCV ERROR: Bad argument ()
in function cvNorm, cxnorm.cpp(1334)
Terminating the application...
called from cvUnregisterType, cxpersistence.cpp(4933)

Je définis mon mask de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
IplImage *mask = cvCreateImage(cvSize(10, 10), img->depth, img->nChannels);
	uchar *dat = (uchar *)mask->imageData;
	for(i=0;i<mask->height;i++){
		for(j=0;j<mask->widthStep;j++){
			for(k=0;k<mask->nChannels;k++){
			dat[i*mask->widthStep +j*channels+k] =1;
			}
		}
	}
où img l'image d'origine dont j'extrais des patchs sur lesquels je veux calculer ma norme.
(j'ai aussi essayé avec un seul channel aussi et même erreur)


Le programme fonctionne parfaitement lorsque je mets 0 à la place de mon masque lorsque j'appelle la fonction cvNorm.

Le masque doit-il être défini différement ou alors est-ce que l'argument mask n'a rien à voir avec ce que je veux faire ?

Merci.