1. 背景:虽然Canny之类的边缘检测算法可以根据像素间的差异检测出轮廓边界的像素,但是它并没有将轮廓作为一个整体。
  2. 轮廓获取得到一个图像的直方图,具体实现步骤:分割图像通道->求出bins数量及范围->创建直方图->计算直方图
  3. opencv中提供了两类表达轮廓的方式:顶点的序列、Freeman链码。
  4. 轮廓的特性:
    1. 轮廓的多边形逼近:使用一个多边形来近似表示一个轮廓。目的是为了减少轮廓的顶点数目。
    2. 轮廓的关键点:轮廓上包含曲线信息比较多的点,关键点是轮廓顶点的子集。
    3. 轮廓的边界框:矩形,圆形,椭圆
    4. 轮廓的矩:是通过对轮廓上所有点进行积分运算(或求和(针对离散)运算)得到的一个粗略特征.
    5. 轮廓树:
      1. 用来描述某个特定轮廓的内部特征。轮廓树跟轮廓是一一对应的关系;轮廓树不用于描述多个轮廓之间的层次关系。
      2. 轮廓树的创建过程:从底端(叶子节点)到顶端(根节点)的,搜索三角形突出或凹陷的形状的周边,每个三角形被一条线段(通过连接非相邻点的两点得到)代替。
    6. 轮廓的凸包或凸缺陷:用于描述物体的外形。
    7. 轮廓的成对几何直方图:
      1. 链码编码直方图(CCH):用于统计一个轮廓的freeman链码编码每一种走法的数字。特性:当物体旋转45度,则新的直方图是老直方图的循环平移,可以不受旋转影响。
      2. 轮廓保存的是一系列的顶点,而看到的是由一系列线段组成的多边形。
      3. 成对几何直方图所用的统计数据包括了夹角和距离。
  5. 轮廓的匹配:
    1. Hu矩匹配:

      1. 矩:实函数相对于值c的n阶距:(x-c)^n
      2. 图像的几何矩:具有平移,旋转,尺度不变性。
      3. 归一化中心距:特征不仅具有平移不变性,还具有比例不变性。
      4. Hu距是归一化中心矩的线性组合,对于缩放,旋转,镜像映射具有不变性。
      5. 一些统计规律:轮廓边界长度(零阶距),x/y方向上均值(即质心,一阶距),方差(二阶中心距),形状特性(Hu距)
    2. 轮廓树匹配:用树的形式比较两个轮廓。
    3. 成对几何直方图匹配:得到轮廓的成对几何直方图后,可使用直方图对比的方法进行匹配。
  6. 基于轮廓的识别:需把图像拆分通道,寻找边缘,转换为轮廓(多边形逼近,特性概括),然后进行轮廓匹配(图像与图像,图像与模板)
  7. 轮廓匹配主要解决:大小,位置,旋转角度,精度不同图像间的匹配问题。
  8. 查找轮廓:
    1. 对图像进行canny检测。
    2. 可直接对二值化图像进行轮廓提取,找出的轮廓其实就是blob,画上外截矩形就是ROI。
  9. 简单几何不变性:
    1. 利用角点特征:

      1. 在图像边界上曲率足够高的点,角点特征具有平移,旋转,缩放不变性。
      2. 只适用于物体边界角点多且能代表物体形状的特征点的物体。
    2. 利用等价曲线来表示形状:
      1. 具有平移,旋转,缩放不变的特性。
      2. 利用形状边界点的极半径的变化是否一致来判断是否属于同一类型。
    3. 高斯描述子:一种基于边界的形状特征。
    4. 小波变换:
      1. 具有空间-频率局部性,方向性,多分辨率。
      2. 在不同尺度上对图像进行分解。
    5. 骨架化方法:使用物体的中轴或骨架的拓扑关系来描述其形状。
    6. PCA在最小均方差的意义下是最优变换,消除模式特征之间的相关性,突出差异性方面达到最优效果。

轮廓匹配---学习笔记相关推荐

  1. 36篇博文带你学完opencv :python3+opencv学习笔记汇总目录(基础版)

    经过几天的学习,opencv基础部分学习完啦.整理出来. OpenCV opencv学习笔记1:图片读入,显示与保存(有代码) opencv学习笔记2:图像处理基础 opencv学习笔记3:像素处理 ...

  2. OpenCV4学习笔记(23)——几何矩、中心矩、归一化矩和Hu矩的计算,以及基于Hu矩的轮廓匹配

    在上次的笔记中,整理记录了有关轮廓发现及轮廓信息提取的一部分内容,同时还记录了Hu矩的计算方式,今天就来记录一下Hu矩的一个应用--轮廓匹配. 在<OpenCV学习笔记(19)--模板匹配> ...

  3. OpenCV学习笔记(九)——图像轮廓(下)

    <OpenCV轻松入门:面向Python>学习笔记(九) 1-3 查找并绘制轮廓.矩特性及Hu矩 4-5 轮廓拟合及凸包 6. 利用形状场景算法比较轮廓 6.1 计算形状场景距离 6.2 ...

  4. 12月19日 OpenCV 实战基础学习笔记——特征匹配

    文章目录 前言 一.特征匹配 1.Brute-force 蛮力匹配 2.1 对 1 匹配 3.k 对最佳匹配 二.答题卡识别 前言 本文为12月19日 OpenCV 实战基础学习笔记--特征匹配,分为 ...

  5. 百度计算广告学沙龙学习笔记 - 内容匹配广告

    百度计算广告学沙龙学习笔记 - 内容匹配广告 时间 2014-02-05 18:53:55 CSDN博客 原文  http://blog.csdn.net/three_body/article/det ...

  6. opencv进阶学习笔记12:轮廓发现和对象测量

    基础版笔记目录: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 轮廓发现 1轮廓发现介绍 基础 ...

  7. opencv进阶学习笔记8:模板匹配

    基础版笔记传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 模板匹配原理 模板匹配(Te ...

  8. opencv学习笔记20:图像轮廓

    图像轮廓 Contours:轮廓 轮廓是将没有连着一起的边缘连着一起. 边缘检测检测出边缘,边缘有些未连接在一起. 注意问题 1.对象为二值图像,首先进行阈值分割或者边缘检测. 2.查找轮廓需要更改原 ...

  9. 数字图像处理学习笔记(一):特征检测和匹配概述

    数字图像处理学习笔记(一):特征检测和匹配概述 参考博客: 特征点的匹配 SIFT特征详解 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 1.特征点概述 如何高效且准确的匹配出两个不同 ...

最新文章

  1. 1476. Lunar Code
  2. 修复.NET的HttpClient
  3. 60秒完成病毒基因对比 阿里云向社会免费开放基因计算服务
  4. 如何检测链表中是存在循环
  5. qtscrcpy自定义按键_按键映射说明.md
  6. linux 多个cpu使用率,统计多台linux的CPU使用率
  7. fossid安装教程_Win10环境下6sV2.1模型编译
  8. Windows 安装 sbt
  9. 【华为云技术分享】网络场景AI模型训练效率实践
  10. 推荐 18 个终端命令行工具
  11. python mss_Python实现的连接mssql数据库操作示例
  12. php安装包进行安装吗,php的一键安装包有哪些php环境搭建
  13. [软件工程基础]2017.10.30 第三次 Scrum 会议
  14. 直播系统开发需要注意的事项
  15. 图像分割——超像素(Superpixels)分割(Matlab)
  16. MySQL官方提供的日志分析工具_MySQL 日志分析的几款工具-Fun言
  17. [ javascript ] 司徒正美的fadeOut-fadeIn效果!
  18. 浅析资产配置的几种方法
  19. Pr 入门教程:如何使用项目面板?
  20. Python中的字符串下标

热门文章

  1. 驱动精灵2007 v7.1.622 单文件绿色完美注册中文版 (驱动程序库10.29)
  2. java 自考qq群_学生建QQ群 成绩好的同学作业答案发群共享
  3. 【HTML+CSS】实现网页的导航栏和下拉菜单
  4. wireshark数据包修改--IP地址修改(一)
  5. 几种常见的垃圾回收器和垃圾回收算法
  6. Oracle11g密码过期(默认180天)及设置密码无限期的方法
  7. 空间平面方程matlab求解,向量代数和空间解析几何MATLAB求解.ppt
  8. 我这几年是如何把副业打造成扇形收入的?
  9. 关于赞同科技项目的收获
  10. java 中值滤波_matlab图像处理-中值滤波原理(示例代码)