question en opencv

question en opencv - C++ - Programmation

Marsh Posté le 02-04-2009 à 14:32:27    

Bonjour a tous.
svp,si quelqu'un peut m'aider  
j'ai ecris un code en c++utilisant opencv ,et j'ai affronte un probleme :
lorsque je fais genere mon programe ,la generation donne :1 reussi ,0 echoue ,donc c'est bon
mais lorsque je fais Deboguer :il ouvre une fenetre noire qui dit:
Assertion failed :<unsigned>row && <unsigned >col < <unsigned>mat->cols,filec:\program files \opencv\cxcore\include\cxtypes.h,line 668
et une autre fenetre :Microsoft Visual c++ Debug Library
                              Program:..Mes documents\visual Studio 2008\Projects\AA\Debug\AA.exe
                              This application has requested the runtime to terminate it in an unsual way,Please contact the application support team  
                              for more information.
et voici une partie du code qui a provoque ce probleme :
#include "stdafx.h"
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <math.h>
#include <iostream>
#include <vector>
#include "stdlib.h"
#include <stdio.h>
using namespace std;
double gauss(double x,double s)
{  
 
 double a=pow(x,2);
 double b=2*pow(s,2);
 double c=s*sqrt(2*3.14);
 double e=exp(-a/b);
 double y=e/c;
 return y;
}
double dgauss(double x,double s)
{  
  double d=(-x*gauss(x,s))/pow(s,2);
     return d;
}
 
 
double gauss2D(double x,double y,double s)
{ double r=sqrt(pow(x,2)+pow(y,2));
  return gauss(r,s);
}
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{IplImage* image=0;  
image=cvLoadImage("C:\img.PNG",0);
cvNamedWindow("Image:", 1 );
cvShowImage( "Image:", image );
if(!image) return -1;
IplImage* destgx    = cvCloneImage( image );  
IplImage* destgy    = cvCloneImage( image );
IplImage* destggx    = cvCloneImage( image );
IplImage* destggy    = cvCloneImage( image );
IplImage* destgg2   = cvCloneImage( image );
IplImage* destg4  = cvCloneImage( image );
int i;
int j;
int k;
int l;
double u[2];
double pixelcarre;
double size;
double sigma=0.5;
double sigmaT=0.5;
double halfsize;
double val;
double valpos;
double t;
double dd,r;
double somme=0;
halfsize=2;
size = 2*halfsize+1;
CvMat* H = cvCreateMat(size,size,CV_32FC1);
 
for(i=1;i<=size;i++)
for(j=1;j<=size;j++)
{ u[0]=i-halfsize-1;
  u[1]=j-halfsize-1;
  val=gauss(u[0],sigma)*dgauss(u[1],sigma);
  valpos=abs(val);
  cout<<val;
  //on a rempi la matrice directement avec les valeurs positives
 cvmSet(H,i,j,valpos);
//  cout<<t;
}
 
 
cvWaitKey(100);
return 0;
}
et j'ai verifie que la cause de ce probleme est cette ligne:cvmSet(H,i,j,valpos);
Donc comment faire? si quelqu'un peut m'aider .
Et un Grand Merci d'avance.

Reply

Marsh Posté le 02-04-2009 à 14:32:27   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed