【图像检索】基于Gabor特征的图像检索,matlab实现

news2024/9/22 2:30:15

    博主简介:matlab图像代码项目合作(扣扣:3249726188

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        本次案例是基于Gabor特征的图像检索,用matlab实现。

 一、案例背景和算法介绍

        这次博客文章我们介绍图像处理的一个重要领域算法:图像检索。目前的图像检索的算法比较多,有基于颜色、纹理、形状等等各种特征算法的图像检索。

        前期的博客介绍了颜色、纹理、形状、SIFT模型等的图像检索:

        基于颜色模型的图像内容检索(【图像检索】基于颜色模型的图像内容检索,matlab实现-CSDN博客)

        基于灰度共生矩的纹理图像检索(【图像检索】基于灰度共生矩的纹理图像检索,matlab实现-CSDN博客)

        基于傅里叶描述子的形状特征图像检索(【图像检索】基于傅里叶描述子的形状特征图像检索,matlab实现-CSDN博客)       

        基于SIFT特征的图像检索(【图像检索】基于SIFT特征的图像检索,matlab实现-CSDN博客)       

        这次分享的是基于Gabor特征图像检索,特征算法是利用Gabor滤波器提取的纹理特征,前期博客对这个特征算法做过介绍(基于Gabor滤波器的指纹图像识别,Matlab实现_图像纹理识别滤波-CSDN博客),博客写Gabor不多,而且比较多同学对这个算法感兴趣,这里将当时对Gabor算法的简介重新贴一下。

         傅里叶变换是线性系统分析的有力工具,提供了一种把时域信号转换到频域进行分析的途径,时域和频域之间是一对一的映射关系。图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为 灰度分布函数。

        傅里叶变换不足之处:经典傅里叶变换只能反映信号的整体特性(时域,频域)。对傅里叶谱中的某一频率,无法知道这个频率是在什么时候产生的。从傅里叶变换的定义也可看出,傅里叶变换是信号在整个时域内的积分,因此反映的是信号频率的统计特性,没有局部化分析信号的功能。另外,要求信号满足平稳条件。为解决傅里叶变换的局限性,产生了Gabor变换和小波变换。

        Gabor变换是D.Gabor 1946年提出的。为了由信号的Fourier变换提取局部信息,引入了时间局部化的窗函数,得到了窗口Fourier变换。由于窗口Fourier变换只依赖于部分时间的信号,所以,现在窗口Fourier变换又称为短时Fourier变换,这个变换又称为Gabor变换。

        Gabor 特征是一种可以用来描述图像纹理信息的特征。此外,Gabor小波对于图像的边缘敏感,能够提供良好的方向选择和尺度选择特性,Gabor滤波器可以提取不同方向上的纹理信息。Gabor滤波器对于光照变化不敏感,能够提供对光照变化良好的适应性,能容忍一定程度的图像旋转和变形,对光照、姿态具有一定的鲁棒性。Gabor 函数的定义、参数细节等等网上也比较多资料,这里不再细述。        

        下面对本次分享的图像检索进行介绍,主要的算法流程如下:

        1、提取测试图的特征,这次选取的是Gabor特征。

        2、计算待检索图库的特征,并将特征保存为特征库

        3、计算相似度,对检索图像的特征与图库特征进行距离的计算,可以采用计算直接特征距离、欧式距离等,得到相近度

        4、确定检索规则,可以采用相似度在一定范围则为检索的结果,或直接选取与待检索图像距离最近的前N个图像作为检索结果。这次的案例我们选取图库中距离最近的10个图作为检索结果。

        具体流程图如下:

         下面看看具体的matlab实现效果。

二、Matlab实现效果

        图库采用image.orig:

        测试图库部分截图如下:

下面看看测试的检索效果:

 待检索图1和检索效果:

待检索图2和检索效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPT-4o在matlab编程中性能较好,与智谱清言相比

边标签由矩阵给出 s [1 2 3 3 3 3 4 5 6 7 8 9 9 9 10]; t [7 6 1 5 6 8 2 4 4 3 7 1 6 8 2]; G graph(s,t); plot(G) ------------------- GPT-4o给出的代码可用, clc;clear; % 定义边的起点和终点 s [1 2 3 3 3 3 4 5 6 7 8 9 9 9 10]; t [7 6 1 5 6 8 2 …

您可能一直在寻找的 10 个非常有用的前端库

文章目录 前言正文1.radash2.dayjs3.driver4.formkit/drag-and-drop5.logicflow6.ProgressBar7.tesseract8.zxcvbn9.sunshine-track10.lottie 前言 前端开发中,总有一些重复性的工作让我们疲于奔命。为了提高开发效率,我们精心挑选了10个功能强大、易于…

【油猴脚本】00010 案例 Tampermonkey油猴脚本,动态渲染表格-添加提示信息框,HTML+Css+JavaScript编写

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【油…

Ubuntu 22.04 源码下载、编译

Kernel/BuildYourOwnKernel - Ubuntu Wikihttps://wiki.ubuntu.com/Kernel/BuildYourOwnKernel 一、查询当前系统内核版本 rootubuntu22:~# uname -r 5.15.0-118-generic 二、查询本地软件包数据库中的内核源码信息 rootubuntu22:~# apt search linux-source Sorting... Do…

Unity实现原始的发射子弹效果

1 创建一个炮塔,按下空格-坦克会发射一个小球2.小球会掉在地上滚下来-添加组件3 间隔几秒后自动销毁程序逻辑:1.在场景中创建一个炮塔\子弹拿到代码里的变量里程序逻辑: 2.if语句检测用户有没有按下空格程序逻辑: 3.在炮塔坐标的位…

5. 数字证书与公钥基础设施

5. 数字证书与公钥基础设施 (1) PKI 的定义、组成及应用 PKI(Public Key Infrastructure,公钥基础设施) 是一个使用公钥技术来提供安全服务的框架。它定义了如何管理和维护公钥,以及如何通过证书来验证公钥的真实性。PKI的核心组成部分包括: 证书颁发机构(CA, Certifica…

(done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)

来源:https://www.youtube.com/watch?vdaB9naGBVv4 模拟信号特点如下 时域连续(x轴) 振幅连续(y轴) 如下是模拟信号的一个例子: 数字信号特点如下: 一个离散值序列 数据点的值域是一系列有限的值 ADC:模拟信号到数字信号的…

Elionix 电子束曝光系统

Elionix 电子束曝光系统 - 上海纳腾仪器有限公司 -

Python包、模块、库辨析

目录 1 模块的基础介绍 2 包的概念解析 3 库的定义与作用 4 区分三者 5 实例 __init__.py addition.py multiplication.py main_scipt 1 模块的基础介绍 模块是 Python 编程的基本组成部分之一,它是单个文件 ,包含 Python 代码,可以定…

GB28181协议接入SVMSPro平台

国标28181协议接入SVMSPro平台 步骤一:海康摄像机28181配置;登录海康摄像机网页进配置选项,左边选网络-高级设置-平台接入-类型选28181 勾选启用,28181协议版本选最新2016 SIP服务器ID:默认20位 34020000002000000001,也可在服务端…

Linux系统网络诊断工具MTR使用方法

我们一般做linux系统服务器测评的时候,基本都会进行网速方面的测试,这方面的脚本工具啥的有很多,其中MTR是Linux平台上一款非常好用的网络诊断工具,集成了traceroute、ping、nslookup的功能,用于诊断网络状态非常有用。…

胤娲科技:谷歌DeepMind祭出蛋白质设计新AI——癌症治疗迎来曙光

在科技的浩瀚星空中,DeepMind的“阿尔法”家族总是能带来令人瞩目的璀璨光芒。这一次,它们再次以惊人的姿态, 将AI的触角深入到了生命的微观世界——蛋白质设计领域,为我们描绘了一幅未来医疗的宏伟蓝图。 想象一下,一…

思通数科开源产品:免费的AI视频监控卫士安装指南

准备运行环境: 确保您的服务器或计算机安装了Ubuntu 18.04 LTS操作系统。 按照产品要求,安装以下软件: - Python 3.9 - Java JDK 1.8 - MySQL 5.5 - Redis 2.7 - Elasticsearch 8.14 - FFmpeg 4.1.1 - RabbitMQ 3.13.2 - Minio (…

网络丢包定位记录(三)

网络IP层丢包 接口ip地址配置丢包 1. 本机服务不通,检查lo接口有没有配置地址是127.0.0.1; 2 .本机接收失败, 查看local路由表:ip r show table local|grep 子机ip地址;这种丢包一般会出现在多IP场景,子…

robomimic应用教程(一)——模型训练

Robomimic使用集中式配置系统来指定所有级别的(超)参数 本文介绍了配置(推荐)和启动训练运行的两种方法 目录 一、使用config json(推荐) 二、在代码中构造一个配置对象 三、查看运行结果 1. 实验结果会存在一个固定文件夹中…

S-Clustr-Simple 飞机大战:骇入现实的建筑灯光游戏

项目地址:https://github.com/MartinxMax/S-Clustr/releases Video https://www.youtube.com/watch?vr3JIZY1olro 飞机大战 这是一个影子集群的游戏插件,可以将游戏画面映射到现实的设备,允许恶意控制来完成游戏。亦或者设备部署在某建筑物中,来控制…

超实用的 Typora 插件

🌼📚Typora 是一款高效、易用且跨平台的 Markdown 编辑器和阅读器,其具有小巧、快速、实时预览等特点,非常受大家的欢迎。今天给大家推荐一款如虎添翼的 Typora 插件(Typora Plugin),它可以通过插件增强 Typora 的功能…

C++入门(03)萌新问题多(二)

文章目录 1. VS2022 控制台输出中文时,变成了一堆“?”1.1 字体、语言设置1.2 在程序中指定控制台编码1.3 修改注册表(只能说试试吧) 1. VS2022 控制台输出中文时,变成了一堆“?” 问题如下,Vi…

解决uniapp开发的app,手机预览,上下滑动页面,页面出现拉伸,抖动的效果问题,

在pages.json文件里“globalStyle”下面的"app-plus"里加入"bounce": "none"即可 "app-plus": { "bounce": "none", //关闭窗口回弹效果 }

[Leetcode] 227.基本计算器

标题:[Leetcode] 227.基本计算器 个人主页:水墨不写bug (图片来源于网络) // _ooOoo_ // // o8888888o // // …