转载请注明出处 https://mp.csdn.net/console/editor/html/105172749

接续上一节内容(颜色特征),本文主要介绍形状特征,并给出matlab上实现的demo。

形状特征

形状特征有两类表示方法,一类是轮廓特征,一类是区域特征。图像的轮廓特征主要针对物体的外边界;而图像的区域特征则关系到整个形状区域。下面将介绍几种典型的形状特征描述方法:

轮廓特征

轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。其与边缘的不同:(1)轮廓是连续的,边缘并不全都连续;(2)边缘主要作为图像的物体特征;而轮廓主要用来分析物体的形态(如周长和面积);(3)边缘包括轮廓。一般在二值图像中寻找轮廓,寻找轮廓是针对白色物体,即物体是白色,而背景是黑色

1 边界特征法

通过对边界特征的描述来获取图像的形状参数。其中Hough变换检测平行直线边界方向直方图方法是经典方法。

Hough变换是利用图像全局特性而将边缘像素连接起来,组成区域封闭边界的一种方法,其基本思想是点-线的对偶性。

边界方向直方图:首先微分图像求得图像边缘,2)做出关于边缘大小和方向的直方图,通常的方法是构造图像灰度梯度方向矩阵。

2 傅里叶形状描述符法

傅里叶形状描述符(Fourier shape deors)基本思想是用物体边界的傅里叶变换作为形状描述,利用区域边界的封闭性和周期性,将二维问题转换为一维问题。

由边界点导出三种形状表达:曲率函数、质心距离、复坐标函数。

区域特征

1 几何参数法

形状的表达和匹配采用更为简单的区域特征描述方法,如采用有关形状定量测量(如矩、面积、周长等)的形状参数法。——具体看后文——矩的介绍

需要说明的是:形状参数的提取,必须以图像处理及图像分割为前提,参数的准确性必然受到分割效果的影响,对分割效果很差的图像,形状参数甚至无法提取。

2 形状不变矩法区域特征

利用目标所占区域的矩作为形状描述参数。

其他

近年来,在形状的表示和匹配方面的工作还包括有限元法(Finite Element Method, FEM)、旋转函数(Turning)和小波描述符(Wavelet Deor)等方法。

基于形状特征检索的共同问题

  1. 目前基于形状的检索方法缺乏比较完善的数学模型;
  2. 目标有变形时,检索结果不太可靠;
  3. 许多形状特征仅描述了目标局部的性质,要全面描述目标对计算时间和存储量有较高的要求;
  4. 许多性质特征反映的目标形状信息与人的直观感受不完全一致。

图像的矩(Image Moments)

1 矩的介绍

矩用来抽取图像(块)的特征。图像中,低阶矩反映低频(主要的)信息,高阶矩反映高频(细节)信息。从一幅图像计算出来的矩集,不仅可以描述图像形状的全局特征,还可以提供大量关于该图像不同的几何特征信息,如大小、位置、方向和形状等。矩函数在图像分析中有广泛应用,如模式识别、目标分类、目标识别与方位估计等。

普通矩的计算:

图像矩的计算,是普通矩的离散化。对于强度为fx,y 的像素点,(p+q) 阶矩可定义为:

其中,C与R分别表示图像的列与行。

各阶矩的物理意义与计算:

  1. 0阶矩(m00 ):目标区域的面积(质量);
  2. 1阶矩((m01,m10 ):目标区域的质心;
  3. 2阶矩(m20,m02,m11 ):目标区域的旋转半径;
  4. 3阶矩(m30,m03,m12,m21 ):目标区域的方位和斜度,反映目标的扭曲。

2 中心矩:构造平移不变性

以目标区域的质心为中心构建中心矩,那么矩的计算永远是目标区域中的点相对于目标区域的质心,而与目标区域的位置无关,即具备了平移不变性。

目标区域的质心坐标:

根据求得的质心坐标,可以构造出中心距:

3 归一化中心矩:构造尺度不变性

为抵消尺度变化对中心矩的影响,利用零阶中心矩u00 对各阶中心矩进行归一化处理,得到归一化中心矩:

零阶矩表示目标区域的质量(面积),如果目标区域的尺度发生变化,其零阶中心距也会相应发生改变,使得矩具备尺度不变性。

​​​​​​​4 Hu矩:构造旋转不变性

利用二阶和三阶规格中心距可推导出以下7个不变矩组(Φ1 ~Φ7 ),他们在图像平移、旋转和比例变化时保持不变。

Φ1=η20+η02

Φ2=(η20-η02)2+4η112

Φ3=(η30-3η12)2+(21-η03)2

Φ4=(η30+η12)2+(η21+η03)2

Φ5=η30-3η12η30+η12η30+η122-3η21+η032+3η21-η03η21+η033η30+η122-η21+η032

Φ6=η20-η02η30+η122-η21+η032+4η11(η30+η12)(η21+η03)

Φ7=3η21-η03η21+η03η30+η122-3η21+η032-η30-3η12η21+η033η30+η122-η21+η032

具体实现代码

function n = FcnHuSquare( oriImg )
[m,n,~] = size(oriImg);% 图像灰度化grayImg = rgb2gray(oriImg);% canny边缘检测提取边缘,保留边缘灰度图像
edgeImg = edge( grayImg, 'canny' );
zerosIndex =  edgeImg==0 ;
grayImg(zerosIndex)=0;% 图像二值化
bwImg = zeros( m,n );
level = graythresh(grayImg);
thresh = level*255;
onesIndex =  grayImg>=thresh ;
bwImg(onesIndex) = 1;%% 计算图像质心m00 = sum( sum(bwImg) );  % 零阶矩
m01 = 0;                  % 一阶矩的初值
m10 = 0;                  % 一阶矩的初值
for i = 1:mfor j = 1:nm01 = bwImg(i,j)*j + m01;m10 = bwImg(i,j)*i + m10;end
end
I = m10/m00;
J = m01/m00;% 计算图像中心矩
u11 = 0;
u20 = 0; u02 = 0;
u30 = 0; u03 = 0;
u12 = 0; u21 = 0;
for i = 1:mfor j = 1:nu11 = bwImg(i, j)*(i-I)*(j-J) + u11;u20 = bwImg(i, j)*(i-I)^2 + u20;u02 = bwImg(i, j)*(j-J)^2 + u02;u30 = bwImg(i, j)*(i-I)^3 + u30;u03 = bwImg(i, j)*(j-J)^3 + u03;u21 = bwImg(i, j)*(i-I)^2*(j-J) + u21;u12 = bwImg(i, j)*(i-I)*(j-J)^2 + u12;end
end
u20 = u20/(m00^2);
u02 = u02/(m00^2);
u11 = u11/(m00^2);
u30 = u30/(m00^(5/2));
u03 = u03/(m00^(5/2));
u12 = u12/(m00^(5/2));
u21 = u21/(m00^(5/2));% 7个Hu不变矩
n(1) = u20 + u02;
n(2) = (u20-u02)^2 + 4*u11^2;
n(3) = (u30-3*u12)^2 + (3*u21-u03)^2;
n(4) = (u30+u12)^2 + (u21+u03)^2;
n(5) = (u30-3*u12)*(u30+u12)*( (u30+u12)^2-3*(u21+u03)^2 ) + ...(3*u21-u03)*(u21+u03)*( 3*(u30+u12)^2-(u21+u03)^2 );
n(6) = (u20-u02)*( (u30+u12)^2-(u21+u03)^2 ) + 4*u11*(u30+u12)*(u21+u03);
n(7) = (3*u21-u03)*(u21+u03)*( (u30+u12)^2-3*(u21+u03)^2 ) - ...(u30-3*u12)*(u21+u03)*( 3*(u30+u12)^2-(u21+u03)^2 );end

图像特征(二)——形状特征(主轮廓特征、区域特征、图像的矩及Hu矩)相关推荐

  1. 图像矩(Hu矩)简介

    (1)零阶矩 根据矩的定义,二维图像的灰度用f(x,y)表示,零阶矩m00表示为: 表示的是图像灰度的总和. (2)一阶矩 图像的一阶矩m10和m01表示用来确定图像的灰度中心, 根据中心矩的定义很容 ...

  2. 数字图像处理 --- 图像的傅里叶变换的频谱特征 二(方向性)

    图像傅里叶变换的频谱特征 二 很多人都不了解图像(二维)频谱中的每一点究竟代表了什么,有什么意义?      简而言之:二维频谱中的每一个点都是一个与之一一对应的二维正弦/余弦波. 5,方向性(dir ...

  3. 图像不变性特征—hu矩

    图像的hu矩是一种具有平移.旋转和尺度不变性的图像特征. 普通矩的计算: f(x,y)的p+q阶原点矩可以表示为: 而数字图像是一个二维的离散信号,对上述公式进行离散化之后: 其中C与R分别表示图像的 ...

  4. 【DBMS 数据库管理系统】数据仓库特征 ( 特征一 : 面向主题组织数据 | 特征二 : 数据集成 | 特征三 : 数据不可更新 | 特征四 : 随时间不断变化 )

    文章目录 一.特征一 : 面向主题 数据组织方式 二.特征二 : 数据集成 三.特征三 : 数据不可更新 四.特征四 : 数据仓库中的数据 随时间不断变化 一.特征一 : 面向主题 数据组织方式 主题 ...

  5. 图像的二值化原理和实现

    1.  图像的二值化的基本原理 图像的二值化处理就是讲图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果.即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和 ...

  6. 图像的二值化之python+opencv

    定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果. 一幅图像包括目标物体.背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用 ...

  7. 不均匀光照文本图像的二值化

    本文转载自:http://blog.csdn.net/u013162930/article/details/47755363 不均匀光照文本图像的二值化. 因为文本图像的背景是不均匀的,所以想先求出图 ...

  8. matlab手动抠取圆形区域_图像中提取圆形子区域matlab code

    图像中提取圆形区域子图像 在图像中提取矩形区域非常容易,应用冒号表达式即可: 例如: IMG_Out=IMG_In(300:400,400:700); 就可以轻松提取到图像中100*300大小矩形区域 ...

  9. 矩概念与图像矩详解及其hu矩的运用

    一.矩概念详解 矩这个东西,能组成的名词太多了,矩形,就是长方形,矩阵,就是m行n列的二维数组,所以想了解矩,就要从其具体的场景中去理解. 今天我们要讲的图像矩,就是一个新的概念,图像矩就是图像的矩, ...

最新文章

  1. spark—3(Spark Scheduler)
  2. 人脸识别 python调用face++ 功能测试
  3. tensorflow sobel算子实现
  4. C++逐行读取文本文件的正确做法
  5. Easyexcel文件下载时,中文名称显示为下划线
  6. Lambda表达式的无参数无返回值的练习
  7. python学习笔记(八)类(classes)
  8. [转]svn常用命令
  9. java字符串拼接例子_Java详解【String】+【StringBuilder vs StringBuffer】+【字符串拼接】...
  10. kernel printk信息显示级别
  11. ROS 教程之 vision : 用各种摄像头获取图像
  12. OCS2007R2升级LyncSrv2013 PART1:基础准备
  13. 别乱提交代码了,你必须知道的 Git 分支开发规范!
  14. Combobox MVVM绑定并设置选中
  15. uniapp ios打包上架
  16. C - Quick Sort (one of the simplest)
  17. IPMI用户名密码忘记了怎么处理?
  18. table 超级详细的 商品订单列表
  19. python --获取内网IP地址
  20. 在ReactJS中正确修改状态数组

热门文章

  1. 【最全面教程】搞定配置MySQL的各种幺蛾子!!
  2. Windows10系统与Ubuntu系统之间的文件传输工具
  3. 粤嵌实验板 linux 环境,粤嵌实习报告
  4. Activity子流程——嵌入式流程
  5. VirtualBox虚拟机安装Mac OS X Lion系统详解
  6. html清除浮动标签,页面布局的排列规则是什么?怎样清除浮动标签?
  7. CleanMyMac X 4.10.1许可证 Mac系统清洁加速
  8. 工具 | Axiom FFmpeg压缩视频教程
  9. [linux小水滴]工具安装与使用
  10. 查杀新rundl132.exe病毒的过程