Comment appliquer le filtre de gabor pour les images dans opencv?
J'ai quelques ondelettes avec le filtre de gabor code, c'est quelque chose comme ça..
mais je ne sais pas comment l'utiliser sur mon image? je sais qu'il y a certains égards, avec matlab,j'.e matlab façon. mais je suis en utilisant opencv
, et je suis très nouveau à ce domaine et à matlab
, je ne sais pas comment écrire le opencv code de la code matlab, donc , quel suis-je censé faire avec opencv
? merci beaucoup!
****Mise à jour****
J'ai essayé @berak, et c'est l'image d'origine
et c'est après que j'ai appliqué le filtre juste tout blanc et rien à gauche,ci-dessous mon params,
int kernel_size = 31;
double sig = 1, th = 0, lm = 1.0, gm = 0.02, ps = 0;
cv::Mat kernel = cv::getGaborKernel(cv::Size(kernel_size, kernel_size), sig, th, lm, gm, ps);
cv::filter2D(src_f, dest, CV_32F, kernel);
est-il quelque chose de mal avec ma configuration?
Juste curieux, ce qui est dans votre image d'origine?
OriginalL'auteur richard | 2014-04-15
Vous devez vous connecter pour publier un commentaire.
fondamentalement, vous convertissez votre img flotter,
ensuite construire un noyau:
et de l'appliquer avec filter2D:
[modifier]
** je ne suis pas sûr, mais vous aurez probablement besoin d'un 1canal de l'image en entrée.
** imshow voit, votre image est float, et juste acides gras saturés rien au-delà de 1.0, de sorte que vous obtenez une image toute blanche.
(c'est juste un problème de visualisation, a besoin d'un peu de conversion/de mise à l'échelle pour les guérir)
la 1ère ligne construit une transformée en ondelettes, la 2ème s'applique à l'image. à mon humble avis, c'est tout ce dont vous avez besoin dans opencv
J'ai essayé, mais ne comprends toujours pas ce que je veux. pourriez vous s'il vous plaît voir ma mise à jour?
mieux maintenant ? hésitez pas à me plaindre si pas.
Il travaille maintenant, si l'effet n'est pas assez bon,mais c'est un autre problème, je devrais peut-être poser une autre question.
OriginalL'auteur berak
changer sigma=3 lambda=36 theta=116 psi=274
Voir la définition et surtout psi. À mon humble avis votre params incorrect. CV_EXPORTS_W Mat getGaborKernel( Taille ksize, double sigma, double theta, double lambd, double gamma, double psi = CV_PI*0.5, int ktype = CV_64F );
OriginalL'auteur sandeep