我正在尝试根据从我创建的Gabor库中提取的特征来聚类纹理,但结果远不是通常所期望的,所以这就是我正在做的事情>>
1 - 生成一个滤波器组(根据Miki的答案,我得到了实部和虚部,以便我以后可以提取幅度特征)
void Gabor::generateFilterbank(int bankRows,int bankCols)
{
bankCol=bankCols;
bankRow=bankRows;
setBankSize();
int thetaStep=pos_th_max/bankCols;
int lambadaStep=(pos_lm_max/bankRows) /10;
for (int i = 1; i <= bankRows; i++) // cols = theta rows = lambda
for (int j = 1; j <= bankCols; j++ )
{
int ks=(kernel_size-1)/2;
Size KernalSize(ks,ks);
double Sigma = pos_sigma;
double Lambda = 0.5+(i*lambadaStep);
double Theta = (j*thetaStep)*CV_PI/180;
double psi = pos_psi;//*CV_PI/180
double Gamma = 0;
vector<Mat> realImag;
realImag.push_back(getGaborKernel(KernalSize,Sigma,Theta,Lambda,Gamma,psi,CV_32F));//real
realImag.push_back(getGaborKernelImag(KernalSize,Sigma,Theta,Lambda,Gamma,psi,CV_32F));//imag
Kernels.push_back(realImag);
}
}
Run Code Online (Sandbox Code Playgroud)
2过程输入图像
void Gabor::process(Mat …
Run Code Online (Sandbox Code Playgroud)