《Visual C++数字图像模式识别技术详解(第2版)》一3.2 幅值特征

简介: 本节书摘来自华章出版社《Visual C++数字图像模式识别技术详解(第2版)》一 书中的第3章,第3.2节,作者:冯伟兴 贺波 王臣业,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 幅值特征

图像的统计特征只反映了图像整体的像素灰度分布特性,并没有反映不同灰度像素在图像中的位置分布信息,而图像的幅值特征则可以反映这些特性。图像的幅值特征主要包括两个,分别是矩特征和投影特征。
1.矩
由于图像幅值的分布是与空间相关的,因此对幅值与空间综合考虑得到的是相应的矩运算。对于一个M×N图像,其(i + j)阶矩定义如下:

    (3-6)

其中,f(x,y)是图像中坐标(x,y)的像素灰度值。i,j分别等于0,1,2…
按照上述矩定义,矩M00就表示总灰度值的积累,其为:

    (3-7)

矩M10代表了灰度沿x方向发布的情况。M10大,则表明灰度值大的像素在x方向的高端;反之则分布在x轴的低端。

    (3-8)

类似于物理学中质量的重心值的计算,也可用下式来表示一个区域的灰度分布重心,其为:

    (3-9)

表示了一定形状图像区域中灰度分布的中心,在许多情况下,它往往是位于区域中最明亮的部分,也是一般人的视觉最集中的部分。
此外,以为中心,所获得的矩称为中心矩,其为:

    (3-10)

与中心矩有关的一个概念就是主轴,它类似于对称轴。它是通过中心的一根直线,主轴的一个重要特性是,对它计算如式(3-11)的二阶矩可得到最小值,因此主轴可用下列方法求得。
设主轴的方向为,则惯量为:

    (3-11)

对它做的导数并使之为0,则可得方程:

    (3-12)

解此方程可得值。即:

    (3-13)

主轴在视觉上起到灰度分布的对称轴作用。
如图3-2所示两幅图像中的物体,我们尝试通过图像的幅值特征对这两个物体进行区分。首先,两个物体的矩M00、M10、M10完全相同,即物体重心是相同的,但两个物体的中心矩和不同,图像a中的物体;图像b中的物体。与之相对应,图像主轴也不同,图像a是垂直主轴,而图像b是水平主轴。
screenshot

2.投影
投影就是把图像在某一方向上进行投影,图像在x,y轴上的投影Px,Py分别如下:

    (3-14)

Px,Py记录了沿x轴或y轴方向的灰度的累积值,即表示了沿该方向的总的明暗变化程度,因此对某一方向灰度的总体明暗变化程度可用该方向的灰度投影来表示。
如图3-3所示,通过图像投影特征,清楚地显示了车牌中的字符位置,从而为字符分割和识别算法的实现打下良好的基础。

36b84208ce0a3124d9b3ca6ade1015c6fb078881
相关文章
|
1月前
|
Linux 数据处理 C++
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(一)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
76 0
|
1月前
|
存储 Linux API
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(三)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
31 1
|
1月前
|
消息中间件 Linux 数据处理
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(二)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
32 1
|
1月前
|
存储 编解码 vr&ar
用C++实现视频编码器:FFmpeg与SDL技术结合,轻松编写高效编解码器
用C++实现视频编码器:FFmpeg与SDL技术结合,轻松编写高效编解码器
72 0
|
1月前
|
存储 算法 编译器
C/C++编译器局部优化技术:局部优化是针对单个函数或基本块进行的优化
C/C++编译器局部优化技术:局部优化是针对单个函数或基本块进行的优化
32 0
|
1月前
|
存储 资源调度 算法
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
|
22天前
|
存储 C++
【C++】Visual Studio C++ 配置并使用gtest(不好用你捶我)
【C++】Visual Studio C++ 配置并使用gtest(不好用你捶我)
|
30天前
|
算法 IDE Java
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
41 0
|
30天前
|
算法 编译器 C++
【C++ 泛型编程 中级篇】C++ 编译时技术:探索 if constexpr 和 std::enable_if
【C++ 泛型编程 中级篇】C++ 编译时技术:探索 if constexpr 和 std::enable_if
40 0
|
30天前
|
Java API 开发工具
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(三)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
30 0

热门文章

最新文章