Bonjour
je veux appliquer un filtre gaussien sur une image dans les directions d'abord sur x puis sur y sur une image en grayscale.
que je peux faire?
#include "stdafx.h"
#include "cv.h"
#include "cvaux.h"
#include "highgui.h"
#include <math.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
double height;
double width ;
IplImage* image=0;
image=cvLoadImage("C:\img.PNG",0);
cvNamedWindow("Image:", 1 );
cvShowImage( "Image:", image );
if(!image) return -1;
}
en matlab , le code est:
for i=1:size
for j=1:size
u=[i-halfsize-1 j-halfsize-1];
hx(i,j)=gauss(u(1),sigma)*dgauss(u(2),sigma);
end
end
hx=hx/sqrt(sum(sum(abs(hx).*abs(hx))));
ou size est celui de l'image et sigma ,halfsize sont des decimaux.
Merci d'avance.
Partager