Gabor的核函数参考的wiki

使用实数Real的公式计算核函数代码:
Mat gaborFilter(Mat& img, Mat& filter){
int half_filter_size = (max(filter.rows,filter.cols)-1)/2;
Mat filtered_img(img.rows,img.cols,CV_32F);
for(int i=0;i<img.rows;i++){
uchar* img_p = img.ptr<uchar>(i);
float* img_f = filtered_img.ptr<float>(i);
for(int j=0;j<img.cols;j++){
float filter_value = 0.0f;
for(int fi=0;fi<filter.rows;fi++){
float* f = filter.ptr<float>(fi);
int img_i = i+fi-half_filter_size;
img_i = img_i < 0 ? 0 : img_i;
img_i = img_i >= img.rows ? (img.rows-1) : img_i;
uchar* p = img.ptr<uchar>(img_i);
for(int fj=0;fj<filter.cols;fj++){
int img_j = j+fj-half_filter_size;
img_j = img_j < 0 ? 0 : img_j;
img_j = (img_j >= img.cols) ? (img.cols-1) : img_j;
float tmp = (float)p[img_j]*f[fj];
filter_value += tmp;
}
}
img_f[j] = filter_value;
}
}
return filtered_img;
}
对一幅图使用如下核卷积:
Mat gaber = getGaborFilter(0.3,0,4,2);
效果如下:

Gabor算子卷积之后得到很多负值(不知道有没有问题),后面的图是归一化之后显示出来的。
Mat normalizeFilterShow(Mat gaber){
Mat gaber_show = Mat::zeros(gaber.rows,gaber.cols,CV_8UC1);
float gaber_max = FLT_MIN;
float gaber_min = FLT_MAX;
for(int i=0;i<gaber.rows;i++){
float* f = gaber.ptr<float>(i);
for(int j=0;j<gaber.cols;j++){
if(f[j]>gaber_max){
gaber_max = f[j];
}
if(f[j]<gaber_min){
gaber_min = f[j];
}
}
}
float gaber_max_min = gaber_max-gaber_min;
for(int i=0;i<gaber_show.rows;i++){
uchar* p = gaber_show.ptr<uchar>(i);
float* f = gaber.ptr<float>(i);
for(int j=0;j<gaber_show.cols;j++){
if(gaber_max_min!=0.0f){
float tmp = (f[j]-gaber_min)*255.0f/gaber_max_min;
p[j] = (uchar)tmp;
}
else{
p[j] = 255;
}
}
}
return gaber_show;
}
分享到:
相关推荐
Gabor滤波器是一种常用的图像处理技术,用于图像分析和处理中。下面是关于Gabor滤波器Matlab实现的知识点总结: 1. Gabor滤波器的定义:Gabor滤波器是一种基于Gaussian函数和 frequency-domain modulation的滤波器...
在本项目中,使用MATLAB 2021a或更高版本进行代码编写和测试,这表明代码将利用MATLAB的图像处理工具箱来实现Gabor滤波器和其他相关函数。 4. **关键文件解析**: - `FTIR.bmp`:可能是一个指纹的原始二进制图像...
Gabor滤波器是一种在图像处理领域广泛使用的滤波器,它基于傅里叶变换的线性系统理论,被用于图像纹理特征的提取。这种滤波器的设计基于人类视觉系统感知纹理和形状的方式。Gabor滤波器能够有效地从图像中提取出纹理...
Gabor滤波器是一种在图像处理领域广泛应用的线性滤波器,特别是在纹理分析、特征提取和模式识别中。它的核心思想是结合了空间域和频域的特性,能够有效地捕获图像的局部结构和方向敏感性。Gabor滤波器的构造基于复数...
【图像增强】基于matlab GUI gabor滤波器指纹增强技术是数字图像处理中的一个重要领域,主要用于提升指纹图像的质量,以便于识别和分析。在本项目中,MATLAB被用作开发工具,GUI(图形用户界面)使得操作更加直观...
Gabor滤波器是一种在图像处理领域广泛应用的线性滤波工具,特别是在特征提取、纹理分析、人脸识别等方面具有显著优势。Gabor滤波器结合了频域和空域的特性,能够有效地捕捉图像的局部特征,同时保持图像的空间定位...
### Gabor滤波器在指纹图像处理中的应用详解 #### 引言 指纹识别系统作为生物识别技术的重要组成部分,在安全认证、身份验证等领域扮演着关键角色。指纹图像的质量直接影响到后续特征提取和指纹匹配的准确性,因此...
Gabor滤波器是一种在信号处理和图像处理领域广泛应用的线性滤波器,它结合了频率和位置信息,能够有效地用于特征提取和模式分类任务。Gabor滤波器的基本思想源自Dennis Gabor的研究成果,他提出了一种能够同时捕捉...
Gabor滤波器是一种在图像处理领域广泛应用的线性滤波工具,特别是在纹理分析、特征提取和人脸识别等任务中表现出色。它结合了空间域和频率域的信息,能够捕获图像中的局部特征,并且对方向敏感,使得它在处理带有...
Gabor滤波器是一种在图像处理领域广泛应用的特征提取工具,尤其在计算机视觉、模式识别和生物医学图像分析中有着重要地位。它结合了空间和频率域的信息,能够捕获图像的局部纹理和边缘信息,因此对于图像特征的描述...
### Gabor滤波器详细介绍 #### 一、一维(时间)Gabor滤波器 Gabor滤波器作为一种优秀的带通滤波器,在处理一维信号(例如语音...这些特性使得Gabor滤波器成为图像处理、语音识别以及其他信号分析任务中的重要工具。
二维Gabor滤波器是一种在图像处理领域广泛应用的线性滤波工具,尤其在特征提取、纹理分析、生物医学成像、模式识别等方面有显著效果。它的主要功能是通过模拟人类视觉系统的局部感受野来对图像进行分析,从而增强...
Gabor滤波器是一种在图像处理领域广泛应用的工具,尤其在纹理特征提取中表现出色。它的设计灵感来源于生物视觉系统,能有效地捕获图像的局部结构信息,包括频率、方向和尺度特性。在本项目中,我们将探讨如何利用...
Gabor滤波器是一种在图像处理领域广泛应用的线性滤波工具,特别是在纹理分析、边缘检测和特征提取中。它的设计灵感来源于人类视觉系统,能够有效地捕捉图像中的局部特征,并且对光照变化具有一定的鲁棒性。在Matlab...
本文将深入探讨指纹图像处理、指纹提取以及指纹图像增强的关键步骤,并重点介绍Gabor滤波器在这一过程中的作用。 首先,指纹图像处理是指纹识别的第一步。指纹具有独特的纹路结构,包括脊线(Ridges)和谷线...
Gabor滤波器是一种在计算机视觉和图像处理领域广泛应用的线性滤波器,它结合了傅里叶变换和局部感受野的特性,能够有效提取图像的纹理、边缘和方向特征。在本项目中,使用C++编程语言,并且利用OpenCV库来实现Gabor...
Gabor滤波器在提取图像纹理特征以及图像增强等方面具有很好的效果,尤其在指纹图像处理中,Gabor滤波器能够有效地增强图像纹理,改善图像质量。 在指纹图像处理中,滤波是一个耗时的过程,因为其需要对整个图像的每...
Gabor滤波器是一种在图像处理领域广泛应用的线性滤波工具,特别是在特征提取和边缘检测方面表现出色。它的设计灵感来源于神经生物学,模拟了视觉系统中感受野的特性,能够在多个尺度和方向上对图像进行分析。在...
Gabor滤波器是一种在图像处理领域广泛应用的线性滤波工具,特别是在图像特征提取、纹理分析、图像增强和模式识别等方面。它结合了空间局部性和频率选择性,能够较好地模拟人类视觉系统对图像的感知。在MATLAB中实现...
Gabor滤波器是一种在图像处理领域广泛应用的线性滤波工具,特别是在纹理分析、特征提取、模式识别和生物医学成像中。它结合了傅里叶变换的频域分析能力与局部感受野的特性,使得滤波过程更加具有针对性。在VC++环境...