OpenCV-Python(29):图像特征

目录

目标

背景介绍

常用特征

应用场景 


目标

背景介绍

        相信大多数人都玩过拼图游戏吧。首先你们拿到一张图片的一堆碎片,你要做的就是把这些碎片以正确的方式排列起来从而重建这幅图像。问题是,你怎样做到的呢。如果把你做游戏的原理写成计算机程序,那么计算机就也会玩拼图游戏了。如果计算机可以玩拼图,我们就可以给计算机一大堆自然图片,然后就可以让计算机把它拼成一张大图了。如果计算算机可以自动拼接自然图片,我们是不是可以给计算机关于一个建筑的的大量图片,然后然后让算机给我们创建一个3D 的的模型呢?

        问题和联想可以无边无际。但是所有的这些都是建立在一个基础之上的。这个问题就是我们是如何玩拼图的?我们是如何把一堆碎片拼在一起的?我们又是如何把一个个自然场景拼接成一个单独图像的?

        答案就是:我们需要寻找一些唯一的特征,这些特征要适于被跟踪,容易被比较。如果我们要定义这样一种特征,然我们知道它是什么但很难用语言来描述。如果你找出一个可以在不同图片之相互比较好的特征,你肯定能搞定。这就是为什么小孩子也会玩拼图的原因。我们在一副图像中搜索这样的特征,我们能找到它们,而且也能在其他图像中找到这些特征,然后再把它们拼接到一块。(在拼图游戏中,我们更注重的是图片之间的连续性)。我们的这些能力是天生的。所以我们的一个问题现在扩展成了几个,但是更加确切了。这些特征是什么呢?我们的答案必须也能让算机理解才可以。好吧,很难说人是怎样找出这些特征的。这些能力已经刻在我们的大脑中了。但是如果我们深入的观察一些图像并搜索不同的pattern,我们会发现一些有趣的事。以下图为例:

        图像很简单。在图像的上方给出了六个小图。你要做的就是找到这些小图在原始图像中的位置。你能找到多少正确结果呢?
        A 和B 是平面,而且它们的图像中很多地方都存在,很难找到这些小图的准确位置。
        C 和D 更简单,它们是建筑的边缘。你可以找到它们的近似位置,但是准确位置是很难找到。这是因为:沿着边缘,所有的地方都一样。所以边缘是比平面更好的特征,但是不够好。(在拼图游戏中要找连续的边缘)。
        最后E 和F,它们是建筑的一些角点。它们能很容易的被找到。因为在角点的地方,无论你向哪个方向移动小图,结果都会有很大的不同。所以可以把它们当成一个好的特征。为了更好的理解这个概念我们举个更简单的例子。 

        如上图所示,蓝色框中的区域是一个平面很难找到和追踪。无论你向哪个方向移动蓝色框,里面的内容长得都一样。对于黑色框中的区域,它是一个边缘。如果你沿垂直方向移动,它会改变,但是如果沿水平方向移动就不会改变。而红色框中的角点,无论你向哪个方向移动得到的结果都是不同的,这证明它是唯一的。所以,基本上来说,角点是一个好的图像特征。值得一提的是,不仅仅是角点,有些情况下斑点也是好的图像特征
        现在我们终于回答了前面的问题了,这些特征是什么(角点)。但是下一个问题又来了。我们怎样找到它们?或者说我们怎样找到角点?我们也已经用一种直观的方式做了回答,比如在图像中找一些区域,无论你想在哪个方向移动,这些区域变化都很大。在下一节中我们会用计算机语言来实现这个想法。所以,找到图特征的技术被称为特征检测
        现在我们找到了图像特征(假如你已经搞定)。在找到这些之后,你应该在其它图像中也找到同样的特征。我们应该怎么做呢?我们选择特征周围的一个区域,然后用我们自己的语言来描􄦟它,比如:“上边是蓝天,下边是建筑,在建筑上有很多玻璃等”,然后你就可以在其他图片中搜索相同的区域了。基本上看来,你是在描述特征。同样计算机也会对特征周围的区域进行描述,这样它才能在其他图像中找到相同的特征。我们把这种对特征的形容和描述称为特征描述。当你有了特征和它们的描述后,你就可以在所有的图像中找这个相同的特征了,找到之后你就可以做任何你想做的图像处理和模式识别相关的事情了,比如特征匹配,图像相似度检测等。

常用特征

        图像特征是指图像中具有一定代表性和可区分性的局部区域或全局属性。图像特征可以用于图像处理、计算机视觉和模式识别等领域的任务,如特征检测、目标识别、图像匹配等。

常见的图像特征包括:

1.灰度特征:通过对图像像素的灰度值进行统计分析,得到图像的亮度分布特征。

2.颜色特征:通过提取图像中的颜色信息,可以用于图像分类、目标识别等任务。

3.纹理特征:通过分析图像中的纹理信息,可以描述图像的纹理结构和细节特征。

4.形状特征:通过对图像中物体的形状进行描述,可以用于目标检测、边缘检测等任务。

5.尺度不变特征变换(Scale-Invariant Feature Transform,SIFT):通过检测图像中的局部特征点,提取具有尺度不变性的特征描述子。

        特征检测是指在图像中寻找具有代表性的局部区域或全局属性的过程。常见的特征检测算法包括哈里斯角点检测、SIFT、SURF、FAST等。

应用场景 

特征检测的应用场景包括:

1.目标识别:通过比对图像中的特征与已知模板特征,可以实现对目标物体的自动识别和定位。

2.图像拼接:通过对图像中的特征点进行匹配,可以实现多幅图像的拼接。

3.视觉里程计:通过对图像中的特征点进行跟踪和匹配,可以实现机器人或车辆的定位和导航。

4.图像检索:通过提取图像的特征向量,可以实现对图像数据库的内容检索和相似图像搜索。

5.图像增强:通过对图像中的特征进行增强和突出,可以改善图像的视觉效果和质量。

        总之,图像特征的检测和应用可以帮助我们从图像中提取有用的信息,并实现图像处理和分析的各种任务。


http://www.niftyadmin.cn/n/5291812.html

相关文章

Vulnhub-Al-Web-1.0 靶机复现完整过程

一、信息收集 1.主机发现 arp-scan -l2.端口扫描 nmap -sV -p- 192.168.200.16PORTSTATESERVICEVERSIONMAC Address80/TCPOpenhttpApache httpd00:0C:29:C4:1B:78 (VMware) 3.目录扫描 python dirsearch.py -u http://192.168.200.16扫描出来这两个文件,首先先…

C# 图标标注小工具-查看重复文件

目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Windows.Forms;namespace ImageDuplicate {public partial clas…

【Delphi 基础知识 3】每个单元的功能

目录 Winapi.Windows:System.SysUtils:System.Variants:System.Classes:Vcl.Graphics:Vcl.Controls:Vcl.Forms:Vcl.Dialogs: 在Delphi中,这些单元是用来提供各种功能和服务的单元(units)。下面是对每个单元的简要解释: Winapi.Wi…

《深入理解C++11:C++11新特性解析与应用》笔记四

第四章 新手易学,老兵易用 4.1 右尖括号>的改进 在 C98 中,有一条需要程序员规避的规则:如果在实例化模板的时候出现了连续的两个右尖括号 >,那么它们之间需要一个空格来进行分隔,以避免发生编译时的错误。C98 会将>&g…

Grafana Loki 组件介绍

Loki 日志系统由以下3个部分组成: Loki是主服务器,负责存储日志和处理查询。Promtail是专为loki定制的代理,负责收集日志并将其发送给 loki 。Grafana用于 UI展示。 Distributor Distributor 是客户端连接的组件,用于收集日志…

k8s学习 — (实践)第四章 资源调度

k8s学习 — (实践)第四章 资源调度 学习资料1 Label 和 Selector1.1 标签(Label)1.1.1 配置文件(方式)1.1.2 kubectl(方式) 1.2 选择器(Selector)1.2.1 配置文…

15-网络安全框架及模型-BLP机密性模型

目录 BLP机密性模型 1 背景概述 2 模型原理 3 主要特性 4 优势和局限性 5 困难和挑战 6 应用场景 7 应用案例 BLP机密性模型 1 背景概述 BLP模型,全称为Bell-LaPadula模型,是在1973年由D.Bell和J.LaPadula在《Mathematical foundations and mod…

uniapp的css样式图片大小截图展示

目录 截取图片前截取图片后第一种方式&#xff1a;代码第二种方式&#xff1a;代码最后 截取图片前 截取图片后 第一种方式&#xff1a;代码 <view class"swiper-box-img"><image class"swiper-box-img-img" :src"item.file_path" mod…