首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OpenCV中求出gabor核矩阵的实部和虚部

如何在OpenCV中求出gabor核矩阵的实部和虚部
EN

Stack Overflow用户
提问于 2015-11-18 13:35:48
回答 2查看 1.5K关注 0票数 0

一个OpenCV初学者和糟糕的数学。我的工作是将Gabor滤波器应用于标准化图像。我只知道OpenCV有一个getGaborKernel函数,我想知道这个函数的返回矩阵是内核的实部或虚部。如果我不能使用这个函数,那么如何生成这些内核呢?使用Java,但是C++代码很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-18 14:12:17

您可以在第87行的gabor.cpp中看到,它正在计算真正的部分(根据维基百科)。

代码语言:javascript
复制
double v = scale*std::exp(ex*xr*xr + ey*yr*yr)*cos(cscale*xr + psi);

您可以将这条线的虚部修改为(也是这里)。

代码语言:javascript
复制
double v = scale*std::exp(ex*xr*xr + ey*yr*yr)*sin(cscale*xr + psi);
                                               ^^^

一旦您有了内核,就可以将它与函数filter2d一起使用。

票数 1
EN

Stack Overflow用户

发布于 2017-08-09 11:44:05

实际上,cos和sin之间的差是90度或PI/2的偏移量。因此,通过使PSI为0表示实的和虚的Gabor核,就可以得到实的和虚的Gabor核。

Mat kernelReal = getGaborKernel(ksize,sigma,theta,lambda,gamma,0,0,CV_32F),Mat kernelImag = getGaborKernel(ksize,sigma,theta,lambda,gamma,0,PI/2,CV_32F);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33781502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档