基于matlab的数字二值图像处理和形状分析的实现内容摘要:

多个工程中要用到的 数学 运算函数 ,可以方便的实现用户所需的各种计算功能 . 函数 中所使用的 算法 都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理 . 在通常情况下,可以用它来代替底层编程语言,如 C 和 C++ . 在计算要求相同的情况下,使用 MATLAB 的编程工作量会大大减少 . MATLAB 的这些 函数 集包括从最简单最基本的函数 到诸如 矩阵 ,特征 向量 、快速 傅立叶变换 的复杂函数 . 函数 所能解决的问题其大致包括 矩阵 运算和 线性 方程组的求解、微分 方程及偏 微分方程 的组的求解、符号运算、 傅立叶变换 和数据的 统计 分析、工程中的优化问题、 稀疏矩阵 运算、 复数 的各种运算、 三角函数 和其他初等 数学 运算、多维数组操作以及 建模 动态仿真等 . 2. 2. 4 图形处理 MATLAB 自产生之日起就具有方便的数据可视化功能,以将向量和 矩阵 用图形表 现出来,并且可以对图形进行标注和打印 . 高层次的作图包括 二维 和 三维 的可视化、图象处理、动画和表达式作图 . 可用于科学计算和工程绘图 . 2. 2. 5 程序接口 新版本的 MATLAB 可以利用 MATLAB 编译器和 C/C++数学 库和图形库,将自己的MATLAB 程序自动转换为独立于 MATLAB 运行的 C 和 C++代码 . 允许用户编写可以和MATLAB 进行交互的 C 或 C++语言程序 . 基于 MATLAB的数字二值图像处理与形状分析实现 8 2. 2. 6 应用软件开发 在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了 函数 嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起 连接 注释等;在输入输出方面,可以直接向 Excel 和 HDF5 进行连接 . 2. 3 MATLAB 在图像处理中的应用 数字图像处理工具箱函数包括以下 15 类:、⑴、图像显示函数;⑵、图像文件输入、输出函数;⑶、图像几何操作函数;⑷、图像像素值及统计函数;⑸、图像分析函数;⑹、图像增强函数;⑺、线性滤波函数;⑻、二维线性滤波器设计函数;⑼、图像变换函数;⑽、图像邻域及块操作函数; ⑾、二值图像操作函数;⑿、基于区域的图像处理函数;⒀、颜色图操作函数;⒁、颜色空间转换函数;⒂、图像类型和类型转换函数. MATLAB 图像处理工具箱支持四种图像类型,分别为真彩色图像、索引色图像、灰度图像、二值图像,由于有的函数对图像类型有限制,这四种类型可以用工具箱的类型转换函数相互转换. MATLAB 可操作的图像文件包括 BMP、 HDF、 JPEG、 PCX、 TIFF、 XWD等格式.下面就图像处理的基本过程讨论工具箱所实现的常用功能. 2. 3. 1 常用图像操作 图像的读写与显示操作:用 imread( )读取图像 , imwrite( )输出图像,把图像显示于屏幕有 imshow( ), image( )等函数. imcrop( )对图像进行裁剪,图像的插值缩放可用 imresize( )函数实现,旋转用 imrotate( )实现. 2. 3. 2 图像增强功能 图像增强是数字图像处理过程中常用的一种方法,目的是采用一系列技术去改善图像的视觉效果或将图像转换成一种更适合于人眼观察和机器自动分析的形式. 2. 3. 3 灰度直方图均衡化 均匀量化的自然图像的灰度直方图通常在低灰度区间上频率较大,使得图像中较暗区基于 MATLAB的数字二值图像处理与形状分析实现 9 域中的细节看不清楚,采用 直方图修整可使原图像灰度集中的区域拉开或使灰度分布均匀,从而增大反差,使图像的细节清晰,达到增强目的.直方图均衡化可用 histeq( )函数实现. 2. 3. 4 灰度变换法 照片或电子方法得到的图像,常表现出低对比度即整个图像偏亮或偏暗,为此需要对图像中的每一像素的灰度级进行标度变换,扩大图像灰度范围,以达到改善图像质量的目的.这一灰度调整过程可用 imadjust( )函数实现. 2. 3. 5 平滑与锐化滤波 平滑技术用于平滑图像中的噪声,基本采用在空间域上的求平均值或中值.或在频域上采取低通滤波,因在灰度连续 变化的图像中,我们通常认为与相邻像素灰度相差很大的突变点为噪声点,灰度突变代表了一种高频分量,低通滤波则可以削弱图像的高频成分,平滑了图像信号,但也可能使图像目标区域的边界变得模糊.而锐化技术采用的是频域上的高通滤波方法,通过增强高频成分减少图像中的模糊,特别是模糊的边缘部分得到了增强,但同时也放大了图像的噪声.在 MATLAB 中,各种滤波方法都是在空间域中通过不同的卷积模板即滤波算子实现,可用 fspecial( )函数创建预定义的滤波算子,然后用 filter2( )或 conv2( )函数在实现卷积运算的基础 上进行滤波. 2. 3. 6 边缘检测和图像分割功能 边缘检测是一种重要的区域处理方法,边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来.如果一个像素落在边界上,那么它的邻域将成为一个灰度级变化的带.对这种变化最有用的两个特征是灰度的变化率和方向.边缘检测算子可以检查每个像素的邻域并对灰度变化率进行量化,也包括对方向的确定,其中大多数是基于方向导数掩模求卷积的方法. MATLAB 工具箱提供的 edge( )函数可针对 sobel 算子、 prewitt算子、 Roberts 算子、 log 算子和 canny 算 子实现检测边缘的功能.基于灰度的图像分割方法也可以用简单的 MATLAB 代码实现. 除了以上基本的图像处理功能, MATLAB 还提供了如二值图像的膨胀运算 dilate( )函数、腐蚀运算 erode( )函数等基于数学形态学与二值图像的操作函数. 基于 MATLAB的数字二值图像处理与形状分析实现 10 第三章 二值图像分析 3. 1 阈值 视觉系统中的一个重要问题是从图像中识别代表物体的区域(或子图像),这种对人来说是件非常容易的事,对计算机来说却是令人吃惊的困难.为了将物体区域同图像其它区域分离出来,需要首先对图像进行分割.把图像划分成区域的过程称为分割,即把图像 ],[ jiF划分成区域 kppp , 21  ,使得每一个区域对应一个候选的物体.下面给出分割的严格定义. 定义 分割是把像素聚合成区域的过程,使得:  iki P1 整幅图像 ( }{iP 是一个完备分割 ). jiPP ji  , , ( }{iP 是一个完备分割 ). 每个区域 iP 满足一个谓词,即区域内的所有点有某种共同的性质 . 不同区域的图像,不满足这一谓词. 正如上面所表明的,分割满足一个谓词,这一谓词可能是简单的,如分割灰度图像时用的均匀灰度分布、相同纹理等谓词,但在大多数应用场合,谓词十分复杂.在图像理解过程中,分割是一个非常重要的步骤. 通过阈值运算是否可以有效地进行图像分割,取决于物体和背景之间是否有足够的对比度.设一幅灰度图像 ],[ jiF 中物体的灰度分布在区间 ],[ 21TT 内,经过阈值运算后的图像为二值图像 ],[ jiFT ,即:   其它如果0 ],[ 1],[ 21 TjiFTjiF T (31) 如果物体灰度值分布在几个不相邻区间内时,阈值化方案可表示为:   其它如果0 ],[ 1],[ ZjiFjiF T (32) 其中 Z 是组成物体各部分灰度值的集合.图 31 是对一幅灰度图像使用不同阈值得到的二值图像输出结果. 基于 MATLAB的数字二值图像处理与形状分析实现 11 图 31 一幅灰度图像和使用不同阈值得到的二值图像结果. 上左:原始灰度图像,上右:阈值 T=100;左下: T=128.右下: T1=100|T2=128. 3. 2 几何特性 3. 2. 1 尺寸和位置 一幅二值图像区域的面积(或零阶矩)由下式给出: 1010 ],[nimj jiBA (33) 在许多应用中,物体的位置起着十分重要的作用.对于二值图像,物体的中心位置与物体的质心相同,因此可以使用下式求物体的中心位置:     1010101010101010],[],[],[],[ninimjmjnimjnimjjiiBjiByjijBjiBx (34) 其中 x和y是区域相对于左上角图像的中心坐标.物体的位置为: AjiiByAjijBxnimjnimj10101010],[],[ (35) 这些是一阶矩.注意,由于约定 y 轴向上,因此方程 34 和 35 的第二个式子的等号右边加了负号. 基于 MATLAB的数字二值图像处理与形状分析实现 12 3. 2. 2 方向 计算物体的方向比计算它的位置稍微复杂一点.某些形状(如圆)的方向不是唯一的,为了定义唯一的方向,一 般假定物体是长形的,其长轴方向被定义为物体的方向.通常,二维平面上与最小惯量轴同方向的最小二阶矩轴被定为长轴. 图像中物体的二阶矩轴是这样一条线,物体上的全部点到该线的距离平方和最小.给出一幅二值图像 B[i,j],计算物体点到直线的最小二乘方拟合,使所有物体点到直线的距离平方和最小:  2 20201   r B i jijjmin [ , ] (36) 其中rij是物体点 ],[ ji 到直线的距离.为了避免直线处于近似垂直时所出现的数值病态问题,人们一般把直线表示成极坐标形式:  s inc o s yx  (37) 如图 32 所示,  是直线的法线与 x 轴的夹角,  是直线到原点的距离.把点 (i,j)坐标代入直线的极坐标方程得出距离 r: 22 )s inc o s(   yxr (38) 图 32 直线的极坐标表示 将方程 38 代入方程 36 并求极小化问题,可以确定参数  和  :   101022 ],[)s i nc os(nimj ijij jiByx  (39) 基于 MATLAB的数字二值图像处理与形状分析实现 13 令 2 对  的导数等于零求解  得: )s i nc o s(  yx  (310) 它说明回归直线通过物体中心 ),( yx .用这一  值代入上面的 2 ,则极小化问题变为:  222 s i nc o ss i nc o s cba  (311) 其中的参数: ],[)(],[))((2],[)(10210101010102jiByycjiByyxxbjiBxxanimjijnimjijijnimjij    (312) 是二阶矩.表达式 2 可重写为:  2s i n212c os)(21)(212 bcaca  (313) 对 2 微分,并置微分结果为零,求解值: cab2tan (314) 因此,惯性轴的方 向由下式给出: 2222)(2co s)(2s i ncabcacabb。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。