【OpenCV】基元检测 Primitive Detection

基元的概念

基元泛指图像中有特点的单元。常说的基元有:边缘、角点、斑点、直线段、圆、等
基元检测是图像分析的基础

 

 

边缘(Edge)检测

边缘是图像中像素灰度值发生剧烈变化而不连续的结果
边缘是赋予单个像素的一种性质,与图像函数在该像素的一个邻域内的梯度特性相关
边缘幅值:梯度的幅值
边缘方向:梯度方向旋转-90度

边缘检测既是常见基元检测的基础,也是基于边界的图像分割的第一步。

边缘检测算法

【OpenCV】边缘检测:Sobel、拉普拉斯算子

【OpenCV】边缘检测:坎尼算子算子

 

 

斑点(Blob)检测

斑点:与周围灰度有一定差别的区域

  • 面部的雀斑
  • 卫星照片中的一棵数
  • 钢材X光照片中的杂质或气泡
  • 医学图像中的细微肿块

斑点检测算法

【OpenCV】LoG算子:SIFT算法
【OpenCV】Blob特征检测算子

 

 

角点(Conner)检测

角点:物体的拐角、交叉点、 曲线上曲率最大的点等
角点的邻域是图像中信息比较丰富的区域

角点检测方法

  • 基于边缘的方法:在小邻域内有两个不同的主边缘方向,实际图像中,孤立点、线段端点也会有类似特性。缺点是:1)需要先提取边缘并编码,计算量大;2)局部变化对稳定性影响大。
  • 基于灰度的方法:计算点的曲率和梯度,目前的主流

角点检测算法:

【OpenCV】角点检测:Harris算子

 

 

哈夫变换-几何形状检测

基本哈夫变换:直线检测

点–线对偶性:直线所在的图像空间(记为XY)和参数空间PQ(p斜率,q截距)之间的一一映射
XY空间中的直线检测就等同于PQ空间的点检测

基本哈夫变换:曲线检测

对于任意能够用f(x,c)=0(其中x是图像点坐标矢量,c是参数矢量)表示曲线或目标轮廓,均可用类似的方法检测,只是计算复杂度随着c维数的增加而增加,需要考虑降维

广义哈夫变换:目标检测

问题:待检目标不是参数化曲线(如正方形),而只是一组轮廓点,希望自动检测目标的存在及其中心参考点(p,q)

广义哈夫变换能够检测到特定目标的位置(即参考点(p,q) ),或者说任意位置的待检目标都是可以发现的,满足平移不变性

 

 

多尺度检测

万物都有其合适的尺度

  • 原子和基本粒子:普朗克常数
  • 集成电路:微米、纳米
  • 人、车、树、建筑:米-厘米-毫米
  • 地理:千米
  • 太空:光年

多分辨率 与 尺度空间

多分辨率( 图像金字塔):(低通滤波)再下采样,多级进行形成金字塔;可能出现假结构.
尺度空间(Wikin’83):用一列单参数、宽度递增的高斯滤波器将原始信号滤波而得到的一组低频信号;高斯核是实现尺度变换的唯一变换核,具有多种优良性质,不会引入假信号

【OpenCV】尺度空间与图像金字塔

 

源码及程序下载:http://download.csdn.net/detail/xiaowei_cqu/5155661

https://github.com/xiaoweicqu/primitive-detection

 

(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)

 

没有更多推荐了,返回首页