图像特征及提取

article/2025/8/30 6:02:16

本文主要用于记录图像特征及其提取方法

文章目录

    • 1.颜色特征
      • 1.1量化颜色直方图
      • 1.2聚类颜色直方图
    • 2.几何特征
      • 2.1边缘特征
      • 2.2基于特征点的特征描述子
      • 2.2.1寻找特征点:Harris角点检测
      • 2.2.2另一种特征点:斑点
      • 2.2.3SFIT:斑点的特征描述子


1.颜色特征

    颜色特征是一种全局特征,描述了图像或图像区域内所对应景物的表面性质。一般颜色特征是基于像素点的特征,所有的像素点对该图像或图像区域都有贡献。由于颜色对图像的方向、大小等变化不敏感,不能很好地捕获对象的局部特征。对颜色特征进行表述,其本质是将颜色划分为一个个不同的区间,即对颜色进行量化。表征颜色特征的方法,这里记录两种,依次是量化颜色直方图和聚类颜色直方图。

1.1量化颜色直方图

适用的颜色空间:RGB、HS颜色空间
1.RGB:以红绿蓝三种基本色为基础进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模型。


2.HSV:HSV(Hue, Saturation, Value)是根据颜色的直观特性由 A. R. Smith 在 1978 年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是色调(H)、饱和度(S)和明度(V)。
量化颜色直方图的具体做法: 将图像分为若干个小单元,每个小单元的中心的颜色代表这个单元的颜色,统计落在量化单元上的像素数量。
优势:计算高效
劣势:量化问题和直方图稀疏

1.2聚类颜色直方图

适用的颜色空间:Lab颜色空间
lab:Lab色彩模型是由亮度(L)和有关色彩的a, b三个要素组成。L表示明度(Luminosity),a表示从洋红色至绿色的范围,b表示从黄色至蓝色的范围。L的值域由0到100,L=50时,就相当于50%的黑;a和b的值域都是由+127至-128,其中+127 a就是红色,渐渐过渡到-128 a的时候就变成绿色;同样原理,+127 b是黄色,-128 b是蓝色。所有的颜色就以这三个值交互变化所组成。例如,一块色彩的Lab值是L = 100,a = 30, b = 0, 这块色彩就是粉红色。
在这里插入图片描述
聚类颜色直方图的做法: 使用聚类算法对所有像素点的颜色向量进行聚类,每个小单元的颜色由聚类中心的颜色代表。这种直方图避免了直方图稀疏的问题,即用到什么颜色就在直方图中展现出什么颜色,其他颜色不占空间,也不会展现。

2.几何特征

2.1边缘特征

边缘特征:像素发生明显变化的区域,具有丰富的语义信息,可以用于物体识别和几何、视角变换。
在数学上对边缘的描述:一阶导数的极值区域。
图像来源于上海交大叶梓老师课程
对于垂直方向的边缘,可以直接使用一阶导数进行分辨。
但实际上的图像的一阶导数,并不会像图中这么平滑(图像存在噪声)。为了去噪,可以使用高斯平滑。
假设原图像函数为f,高斯函数为g,则高斯平滑得到的新函数h=f*g。
对新函数h进行求导,就可以得到较为平滑的边缘特征。
在这里插入图片描述
对于倾斜的边缘,需要对函数求梯度。边缘存在的位置就是梯度增加最快的方向
在这里插入图片描述

2.2基于特征点的特征描述子

对于同一个物体,从不同的距离、方向、角度、光照条件下观察时,物体的大小、形状、明暗都不同,但我们依然可以判断出它是同一个物体。为了让计算机具有这种能力,引入了基于特征点的特征描述子。理想的特征描述子应该具备如下性质:在大小、方向、明暗不同的图像中,同一特征点应具有足够相似的描述子,称之为描述子的可复现性。
为了实现这种特征描述子,我们需要找到图片中的关键点。对于一只狗的图片,不断从正面还是侧面看,它都有一些特征点是与人不一样的,依靠特征点可以分辨出图片中的是狗还是人。稳定局部特征点最重要的特点是要抗图片变化。
对于同一个地点,拍摄两个不同角度的图片,通过寻找特征点就可以实现图片的拼接

2.2.1寻找特征点:Harris角点检测

角点是一种显著的特征点。使用一个小观察窗,在图片中移动观察窗的过程中,只要遇到角点,必然会存在大的像素变动。
在这里插入图片描述
其数学模型描述为:
在这里插入图片描述
将式子做近似化处理,可以得到:
在这里插入图片描述
其中的M:
在这里插入图片描述
其中矩阵里的两项称为特征值
若图像中为直线,则一个特征值大,一个特征值小
图像中为屏幕,则两个特征值都小,且近似相等
图像中为角点:两个特征值都大,且近似相等

2.2.2另一种特征点:斑点

对于刚才提到的边缘数学模型,一阶导数存在极值点的地方即为边缘。对于二阶导数存在极大值点的地方,即为斑点。
在这里插入图片描述

2.2.3SFIT:斑点的特征描述子

计算步骤:

  • 在差分高斯尺度空间中获取极值点
  • 对关键点进行处理,包括位置插值和去除边缘点
  • 进行关键点的方向估计
  • 进行区域坐标旋转
  • 计算采样区域的直方图
  • 生成关键点描述子

高斯差分:使用两个不同尺度的高斯核对图像进行处理,然后对处理后的结果相减。相减后就可以得到图像中的边缘。具体做法采用高斯金字塔:
高斯金字塔中,最下面一层的若干图片称为一组,一组中最下面的图片可以看做原图,在原图的基础上依次使用不同的高斯核进行高斯平滑,可以得到不同的图片。将原图进行缩放(可以是每隔一个像素取一个值)得到新尺寸的图片,则新尺寸的图片就是第二组的最下层的图片,继续进行高斯滤波,则得到第二组中的其他图片
在这里插入图片描述
对两层之间依次做差,就可以得到高斯差分空间

SIFT的特点:具有良好的不变性;独特性好,信息量丰富;具有多量性


http://chatgpt.dhexx.cn/article/ZnsmbVUP.shtml

相关文章

机器学习中的特征提取

特征提取是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,特征提取是为了计算机更好的去理解数据。 特征提取大体上可以分为三大类: 字典特征提取(特征离散化)文本特征提取图像特征提取(深度学习&#xf…

图像特征提取

从本节开始, 我们将逐步从数字图像处理向图像识别过渡。 严格地说, 图像特征提取属于图像分析的范畴, 是数字图像处理的高级阶段, 同时也是图像识别的开始。 本文主要包括以下内容 常用的基本统计特征, 如周长、面积…

机器视觉中的特征提取【0】:什么是特征提取,特征提取有什么作用?

1.什么是特征提取? 特征提取的英文叫做feature extractor,它是将一些原始的输入的数据维度减少或者将原始的特征进行重新组合以便于后续的使用。简单来说有两个作用:减少数据维度,整理已有的数据特征。 这里我给一个例子来解释特…

c语言结构体学习整理(结构体初始化,结构体指针)

渣渣c的c语言学习之路 1.关于c语言的结构体: 首先我们为什么要用到结构体,我们都已经学了很多int char …等类型还学到了同类型元素构成的数组,以及取上述类型的指针,在一些小应用可以灵活使用,然而,在我们实际应用中…

C语言----初始结构体详解

此文是作者初次学习C语言的时候,写的笔记博文,如有错误请及时指正,谢谢!!! 目录 1,什么是结构体 2. 结构体的声明 2,1结构体声明 2,2结构体成员的类型 2,…

openVAS 介绍

含义及作用: OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。 OpenVAS 的功能包括非认证测试、认证测…

040 OpenVAS的下载与安装

文章目录 一:OpenVAS的下载二:OpenVAS的安装2.1:中文版本步骤2.2:英文版本步骤 一:OpenVAS的下载 OpenVAS是开源的网络漏洞扫描器,自从Nessus收费了之后,分支出来的免费的 官网:htt…

Linux 漏洞扫描 openvas

什么是OpenVAS OpenVAS是一款开源的漏洞扫描攻击,主要用来检测网络或主机的安全性。其强大的扫描能力来自于集成数万个漏洞测试程序,这些测试程序以插件的形式提供,可以从官方网站免费更新. 一套完整的OpenVAS系统如下图显示 ① 客户层组件 …

关于openvas

目录 一:什么是openvas 二:作者 三:系统简介 四:建立架构 五:openvas功能 六:OpenVAS的核心组件 七:OpenVAS部署 八:openvas的组件构成 一:什么是openvas OpenV…

openvas

目录 一、openvas的简介 1、简介 2、建立的构架 二、openvas的环境 三、openvas的组件构成 四、openvas安装及使用 一、openvas的简介 1、简介 OpenVAS是开放式漏洞评估系统,也可以说它是⼀个包含着相关⼯具的⽹络扫描器。其核⼼部件是⼀个服务器,包括…

风险评估系统OpenVAS配置使用教程说明

penVAS是一款免费的开放式风险评估工具,可以检测远程系统和应用程序中的安全问题。最初作为Nessus一个子工具,被称为 GNessUs。其特点就是允许继续免费开发。最早是由Portcullis Computer security公司的渗透测试人员发布的,之后由Slashdot网…

OpenVas 漏洞扫描器使用教程

Openvas简介 Openvas是开源的,是Nessus项目分支,用于管理目标系统的漏洞,检测目标网络或主机的安全性。它的评估能力来源于数万个漏洞测试程序,openvas 早起版本还有一个客户端,现在的版本已经不提供客户端程序&#…

OpenVAS介绍

一、背景: OpenVAS(Open Vulnerability Assessment System)是开放式漏洞评估系统,其核心部分是一个服务器。该服务器包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。OpenVAS不同与传统的漏洞扫描…

openVAS简介

文章目录 openVAS一、openVAS开发团队二、openVAS背景三、openVAS作用四、openVAS部署kali部署部署openVAS镜像简单使用新建目标(target)新建任务(tasks)开始扫描扫描详情下载报告 openVAS O p e n V A S 是 开 放 式 漏 洞 评 估…

OpenVAS 安装及基本配置

OpenVAS 安装及基本配置 1 .概要 系统简介 OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。建立架构 OpenVAS是…

5.数据验证

数据验证 1、数据绑定失败:比如需要数字却输入了字母; 2、数据不合法:可以认为是业务错误,通过自定义验证器验证,如用户名长度必须在5-20之间,我们却输入了100个字符等; 3、错误对象&#xff1a…

认证篇——消息认证码

目录 一、消息认证码介绍 1)消息认证码的使用步骤: 2)消息认证码的密钥配送问题: 3)消息认证码的实例: 4)消息认证码的实现: 二…

获得验证信息

用的最多的验证信息为URL,TEXT,TITLE 以百度为例 from selenium import webdriverurl "https://www.baidu.com/" driver webdriver.Chrome() driver.get(url) driver.maximize_window() ### 获取当前页面的title title driver.title prin…

密码框验证信息

效果展示&#xff1a; 代码展示 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><link rel"stylesheet" type"text/css" href"fontss2/iconfont.css" /><style&g…

信息认证技术

这个章节会介绍一些比较有意思的东西&#xff0c;例如哈希函数&#xff0c;数字签名&#xff0c;身份认证等&#xff01; 1.一个安全的认证 系统应满足什么样的条件&#xff1f; 合法的接受者能够检验所接受消息的合法性和真实性 合法的发送方对所发送的消息无法进行否认 除了合…