Gabor滤波器特征提取原理讲解及c++实现

article/2025/9/16 16:23:05

文章目录

  • Gabor滤波器
    • 复正弦载波
    • 高斯滤波
  • 参数解释
  • gabor滤波核实现
  • 效果:


Gabor滤波器

1946年,Dennis Gabor于在“Theory of communication”一文中提出了著名的“窗口”傅里叶变换(也叫短时Fourier变换,STFT),即Gabor变换。
在图像处理邻域,Gabor小波是一种非常有效的纹理表示方法。
在空域,一个2维的Gabor滤波器是一个正弦平面波和高斯核函数的乘积:
在这里插入图片描述
其中s(x, y)是一个复正弦信号,称为载波,Wr(x, y)是一个二维信号高斯型函数,称为包络线。

复正弦载波

复正弦函数的定义如下:
在这里插入图片描述
式中(u0, v0), P分别定义正弦信号的空间频率和相位。可以把这个正弦函数想象成两个独立的实函数,分别表示为复函数的实部和虚部:
在这里插入图片描述
可以直观的分别表示为:
在这里插入图片描述
参数u0和v0定义了直角坐标系中正弦信号的空间频率。这个空间频率也可以用极坐标表示为幅度F0和方向ω0:
在这里插入图片描述
则:
在这里插入图片描述
用这种表示法,复正弦函数是:

在这里插入图片描述

在这里插入图片描述

一般地,复正弦函数表示为:`
在这里插入图片描述

高斯滤波

二维高斯函数可以表示为:
在这里插入图片描述

那么将复正弦函和高斯滤波相乘,gabor滤波器复数形式可表示为:
在这里插入图片描述
下面更加直观地看一下这两者相乘的效果:
在这里插入图片描述
(a) 2D正弦面,(b)高斯核,©相应的Gabor滤波器。

参数解释

以上公式中各个参数说明:

波长(λ):像素为单位,通常大于等于2.但不能大于输入图像尺寸的五分之一。

方向(θ):并行条纹的方向,它的取值为0到360度

相位偏移(φ):取值范围为-180度到180度。其中,0he180度分别对应中心对称函数,而-90度和90度对应反对称函数。

长宽比(γ):纵横比,决定了Gabor函数形状。当γ= 1时,形状是圆的。当γ< 1时,形状随着平行条纹方向而拉长。

带宽(b):Gabor滤波器的半响应空间频率带宽b和σ/ λ的比率有关,其中σ表示Gabor函数的高斯因子的标准差,如下:
在这里插入图片描述

下面给出不同参数下,gabor核函数的对比图:大小512*512

波长λ分辨分别为:8,16,32在这里插入图片描述
方向(θ)分别为:0,45,90度
在这里插入图片描述
相位偏移(φ)分别为0,90,180度
在这里插入图片描述

长宽比(γ)分别为:0.5,1,2

在这里插入图片描述

带宽(b)分别为0.5,1,2
在这里插入图片描述

gabor滤波核实现

cv::Mat getGaborKernel(int ks, double sig, double th, double lm, double ps)
{int hks = (ks-1)/2;double theta = th*CV_PI/180;double psi = ps*CV_PI/180;double del = 2.0/(ks-1);double lmbd = lm;double sigma = sig/ks;double x_theta;double y_theta;cv::Mat kernel(ks,ks, CV_32F);for (int y=-hks; y<=hks; y++){for (int x=-hks; x<=hks; x++){x_theta = x*del*cos(theta)+y*del*sin(theta);y_theta = -x*del*sin(theta)+y*del*cos(theta);kernel.at<float>(hks+y,hks+x) = (float)exp(-0.5*(pow(x_theta,2)+pow(y_theta,2))/pow(sigma,2))* cos(2*CV_PI*x_theta/lmbd + psi);}}return kernel;
}

效果:

请添加图片描述

参考文献:
1、Gabor filter visualization
2、1-Petkov_Gabor_functions2011-Lecture notes
3、Texture features for browsing and retrieval of image data


http://chatgpt.dhexx.cn/article/4DCngbjl.shtml

相关文章

FCN学习

简介 FCN(Fully Convolutional Networks for Semantic Segmentation)是首个端对端的针对像素级别预测的全卷积网络&#xff0c;发表在2015CVPR。全卷积的意思是全连接层全部替换成了卷积层。 上面这句话的重点是全卷积&#xff0c;但是端到端end to end这个词也同样重要。end…

卷积神经网络CNN(3)—— FCN(Fully Convolutional Networks)要点解释

前言 参考FCN论文&#xff1a;Fully Convolutional Networks for Semantic Segmentation FCN作为图像语义分割的先河&#xff0c;实现像素级别的分类&#xff08;即end to end&#xff0c;pixel-wise&#xff09;&#xff0c;为后续使用CNN作为基础的图像语义分割模型提供重要…

语义分割——FCN模型pytorch实现

FCN网络简介 全卷积网络&#xff08;Fully Convolutional Networks&#xff0c;FCN&#xff09;是Jonathan Long等人于2015年在Fully Convolutional Networks for Semantic Segmentation一文中提出的用于图像语义分割的一种框架&#xff0c;是首个端对端的针对像素级预测的全卷…

全卷积网络 FCN 详解

原文链接&#xff1a;全卷积网络 FCN 详解 FCN是深度学习应用在图像分割的代表作, 是一种端到端(end to end)的图像分割方法, 让网络做像素级别的预测直接得出label map, 下面我们来看看FCN是如何做到像素级别的分类的 论文 : Fully Convolutional Networks for Semantic Segme…

图像分割-FCN全卷积神经网络(完整代码详解)

目录 FCN全卷积神经网络 实现过程 全卷积 反卷积 FCN的三点创新 code FCN全卷积神经网络 FCN为深度学习在语义分割领域的开山之作&#xff0c;提出使用卷积层代替CNN中的全连接操作&#xff0c;生成热力图heat map而不是类别。 实现过程 图1 FCN网络结构 包括全卷积过程…

FCN网络学习笔记

目录 前言1. 网络结构2. 损失计算&#xff1a;Cross Entropy Loss参考 前言 FCN网络是首个端对端的针对像素级预测的全卷积网络。 其中&#xff0c;全卷积的含义是将分类网络的全连接层全部替换成了卷积层。使用了分类网络作为backbone&#xff0c;将会复用分类网路在ImageNet…

深度学习-全卷积神经网络(FCN)

1. 简介 全卷积神经网络&#xff08;Fully Convolutional Networks&#xff0c;FCN&#xff09;是Jonathan Long等人于2015年在Fully Convolutional Networks for Semantic Segmentation一文中提出的用于图像语义分割的一种框架&#xff0c;是深度学习用于语义分割领域的开山之…

FCN全卷积网络理解及代码实现(来自pytorch官方实现)

视频链接&#xff1a;https://www.bilibili.com/video/BV1J3411C7zd?vd_sourcea0d4f7000e77468aec70dc618794d26f 代码&#xff1a;https://github.com/WZMIAOMIAO/deep-learning-for-image-processing FCN是2015年提出的首个端对端的针对像素级预测的全卷积网络。 如今的pyt…

FCN网络结构解析

daily&#xff1a;作为深度学习图片分割第一个学习的网络结构 Q1&#xff1a; 为什么要用FCN&#xff1f; A1&#xff1a;应为和以前网络R-CNN&#xff0c;SDS相比提升比较大 Q2&#xff1a;与CNN什么区别&#xff1f; A2:使用全卷积层代替全连接层 Q3&#xff1a;为什么要进行…

FCN网络详解

参考视频&#xff1a;FCN网络结构详解(语义分割)_哔哩哔哩_bilibili FCN是首个端对端的针对像素级预测的全卷积网络 这是作者提出的网络中的输出对比图&#xff0c;可以看到当FCN-8s效果接近真实分割图。 普通卷积分类网络与FCN对比 在这个模型提出之前&#xff0c;我们来看一下…

FCN全卷积神经网络

目录 前言 一、FCN的意义 二、先验知识 1.FCN-32S,FCN-16S,FCN-8S 2.上采样&#xff0c;下采样 3.大体网络结构 4.与传统网络&#xff08;带全连接层的网络&#xff09;区别 5.传统网络VGG网络结构 三、FCN网络结构解析 1.FCN-32S 2.FCN-16S 3.FCN-8S !!!重要&…

FCN算法详解

基于全卷积网络的语义分割 1. 摘要 卷积网络是一种强大的视觉模型,可产生特征的层次结构。卷积网络在语义分割方面的应用已超过了最先进的水平。本文关键是建立“全卷积”网络,它接受任意大小的输入,并通过有效的前向传播产生相应大小的输出。本文定义并详细描述了全卷积网…

FCN网络(Fully Convolutional Networks)

首个端到端的针对像素级预测的全卷积网络 原理&#xff1a;将图片进行多次卷积下采样得到chanel为21的特征层&#xff0c;再经过上采样得到和原图一样大的图片&#xff0c;最后经过softmax得到类别概率值 将全连接层全部变成卷积层&#xff1a;通常的图像分类网络最后几层是全…

FCN网络(Fully Convolutional Networks for Semantic Segmentation)

一.概述 FCN是深度学习应用在图像分割的代表作, 是一种端到端(end to end)的图像分割方法, 让网络做像素级别的预测直接得出label map。因为FCN网络中所有的层都是卷积层&#xff0c;故称为全卷积网络。 全卷积神经网络主要使用了三种技术&#xff1a; 卷积化&#xff08;Con…

FCN的代码解读

目录 模型初始化 VGG初始化 FCN初始化 图片的预处理 图片处理 图片编码 计算相关参数 模型训练 一个小问题 完整代码 参考 最近浅研究了一下关于图像领域的图像分割的相关知识&#xff0c;发现水还是挺深的&#xff0c;因为FCN差不多也是领域的开山鼻祖&#xff0c;所以就先从…

FCN网络介绍

目录 前言一.FCN网络二.网络创新点 前言 在图像分割领域&#xff0c;有很多经典的网络&#xff0c;如MASK R-CNN&#xff0c;U-Net&#xff0c;SegNet&#xff0c;DeepLab等网络都是以FCN为基础进行设计的。我们这里简单介绍一下这个网络。 一.FCN网络 FCN 即全卷积网络&#…

FCN简单理解

文章目录 整体把握卷积层替换全连接层的意义卷积层替换全连接层的具体方法网络结构中“放大”、“缩小”跳级的思想损失函数 整体把握 FCN的论文主要集中于语义分割&#xff0c;当然这种结构现在已经运用在计算机视觉的各种任务中。FCN创造性的将传统CNN的全连接层都转换成了卷…

全卷积神经网络(FCN)

目录 卷积化上采样跳跃结构卷积化上采样跳跃结构 卷积化 上采样 跳跃结构 论文&#xff1a;Fully Convolutional Networks for Semantic Segmentation(2015) 参考&#xff1a;https://zhuanlan.zhihu.com/p/80715481 全卷积神经网络&#xff08;Fully Convolutional Networks…

全卷积网络(FCN)实战:使用FCN实现语义分割

全卷积网络&#xff08;FCN&#xff09;实战&#xff1a;使用FCN实现语义分割 FCN对图像进行像素级的分类&#xff0c;从而解决了语义级别的图像分割&#xff08;semantic segmentation&#xff09;问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类&…

FCN

转载自: http://blog.csdn.net/taigw/article/details/51401448 在上述原文的基础上结合自己理解做出了部分修改。 从图像分类到图像分割 卷积神经网络&#xff08;CNN&#xff09;自2012年以来&#xff0c;在图像分类和图像检测等方面取得了巨大的成就和广泛的应用。 CNN的强大…