图像处理之_轮廓匹配

1. 引子

图像识别可通过轮廓,直方图等方式实现,像人脸识别这种复杂应用,实现它的方法很多,通常是基础方法的改进版与机器学习组合。
基于轮廓的识别,需要把图像拆分通道,寻找边缘,转换为轮廓(多边形逼近,特性概括等),然后进行轮廓匹配(图像与图像匹配,图像与模板匹配)。
程序员根据不同情境,选择适合图像抽象方法和匹配方法。
轮廓的匹配主要是解决大小,位置,旋转角度,精度不同图像间的匹配问题。方法包括轮廓矩,成对几何直方图,凸包和凸缺陷,等级匹配等等,下面以轮廓矩为例,看看它是如何实现的,同时也了解一下矩在图像处理中的应用(基于统计的方法)。

2. 是什么矩(moment)

数学定义:实函数相对于值c的n阶矩为

图片.png

从上述公式可以看到,它就是一个加了权重的积分,而权重是(x-c)n,其中n是阶数(n阶矩),如果把它想成一个平面直角系中,c是x轴上的一点,(x-c)n是各个x点相对于c点值的n次方。以下是个积分的图示,只要想象一下,它的每个小方块再乘上权重:(xi-c)^n即可得到矩。

图片.png

轮廓处理中用到的矩,是它在统计学中的应用。
以上公式是一元的情况,扩展到图片所在的二元,想象我们有一个图像矩阵,经过了寻找边缘,转换轮廓之后,矩阵中每个值点f(x,y)的值或为0(不是轮廓点),或为1(是轮廓点),当f(x,y)为0时,该积分项也为0,可以不计算,因此,对我们有意义的只有f(x,y)=1的n个点,即轮廓点。在后面公式中记为I(x,y),x,y为其在图中的坐标,c点扩展到二元,可以视为轮廓的中心点,我们求得的所谓n阶中心矩,就如上述公式所示,积分的权重是轮廓上各点相对于中心位置c的n次方。
此时我们可以得到一些统计规律,比如:轮廓边界长度(零阶矩),x/y方向上的均值(即质心,由一阶矩求得),方差(由二阶中心矩求得),形状特性(Hu矩)

3. 常用的矩

1) 空间矩(spatial moment)

i. 用途
最简单地轮廓比较,只能用于对比位置,大小,角度完全一致的轮廓。
ii. 公式

图片.png

mpq表示图像的(p+q)阶矩,一般计算所有3阶的矩(p+q<=3)。其中 I(x,y) 是象素点 (x, y) 的值,一般是1,n是轮廓上点的个数,p和q分别是x维度和y维度上的矩,即m00,m10,m01…m03。
零阶矩m00是轮廓上点的简单累加,即轮廓上有多少个点 。
一阶矩m10,m01分别是x和y方向上的累加
iii. OpenCV相关函数
cvContoursMoments()
cvGetSpatialMoment()

2) 中心矩(central moment)

i. 用途
xavg和yavg由一阶矩和零阶矩的比值算出(见公式),它是重心坐标,中心矩即是根据x,y与重心的相对位置求取的矩,它使得结果与图像相对于x,y轴的位置无关(与平移无关)。
ii. 公式

图片.png

iii. OpenCV相关函数
cvMoments()cvGetCentralMoment()

3) 归一化的中心矩

i. 用途
使用m00的幂对中心矩归一化,使得结果与图像大小无关
ii. 公式

图片.png

iii. OpenCV相关函数
cvGetNormalizedCentralMoment()

4) Hu不变矩

i. 用途
Hu矩是归一化中心矩的线性组合,它对于缩放,旋转,镜像映射具有不变性。
ii. 公式

图片.png

iii. OpenCV相关函数
cvGetHuMents()cvMatchShapes()

4. 示例代码

opencv/samples/cpp/tutorial_code/ShapeDescriptors/moments_demo.cpp

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像。需要说明的是:边缘和物体间的边界并不等同,边缘...
    大川无敌阅读 13,816评论 0 29
  • 原文链接 背景 识别二维码的项目数不胜数,每次都是开箱即用,方便得很。这次想用 OpenCV 从零识别二维码,主要...
    粗识名姓阅读 4,860评论 1 22
  • sì 支zhī茶chá 对duì 酒jiǔ,赋fù 对duì 诗shī,燕yàn子zi 对duì 莺yīng 儿é...
    每个人的孟母堂阅读 1,192评论 0 6
  • 本想多找几篇写过的,但发现自己保存的就这一篇。 先这么多吧,以后再写,嗯。
    前半辈子就这样阅读 130评论 0 0
  • 无论劝自己多久,都无法减少那些情感的投入,更无法忘记那些不属于我的场景。本不应该是我,不应该是我去付出什么,寻找什...
    一颗李子阅读 204评论 0 0