找回密码
 立即注册
查看: 140|回复: 0

基于MATLAB的图像措置技术

[复制链接]
发表于 2024-7-15 17:44 | 显示全部楼层 |阅读模式
基于MATLAB的图像措置技术
摘  要:        一般情况下,拍摄到的图像由于光照不足等原因,可能有较多的噪声,且边界特征不清晰。因此,我们需要对这些图像进行增强或分割措置。介于此,本文介绍了基本的图像措置技术,并用尝试验证了各种方式的优错误谬误,对进一步学习和寻找更好图像措置方式具有实用意义。
关键词:        MATLAB; 图像措置; 边缘检测;
1 引言

MATLAB是由美国的Mathworks公司推出的用于数值计算和图像措置的系统环境,具有很强的数值计算和图像措置能力。MATLAB是以矩阵为单元进行措置的,它的指令表达式与数学、工程中常用形式十分相似,故用MATLAB来解决问题要比C、C++等语言简捷得多。
MATLAB在学术界和工程界广受欢迎,其主要优势和特点有如下几方面:
(1) 友好的工作平台和编程环境;(2) 简单易用的编程语言; (3) 强大的图形措置功能;(4) 功能强大的东西箱,包罗功能性东西箱和科学性东西箱。(5)良好的交互性和开放性。
2  MATLAB在图像措置中的应用

2.1图像增强

图像增强是一类基本的图像措置技术,主要目的是改善图像的视觉效果,提高图像成分的清晰度,使得图像更有利于计算机的措置。图像增强技术分为点运算增强、空域增强、频域增强三类。点运算增强包罗调整灰度、直方图增强、图像间的代数运算增强等;空域增强包罗平滑和锐化两种;频域增强包罗低通滤波、高通滤波、同态滤波等。下面介绍
几种常用的方式。
(1) 直方图均衡化。该方式的基本思想是把原始图像的像素值均匀地分布在图像的各个区间上,使视觉效果得到改
善。直方图均衡化可用函数histeq()来实现。
如下图1.1,该图像直方图斗劲集中,边缘斗劲模糊,使用MATLAB编程,将图像进行直方图均衡化措置,成果如图2.1.2所示。原始图像及均衡化后图像的直方图如图2.1.3所示。





图2.1.1 原始图像                      图2.1.2 直方图均衡化后的图像



图2.1.3 原始图像及其均衡化后的直方图
(2)对比度调整。有些图像对比度很低,灰度级集中在一个斗劲窄的范围内,MATLAB提供了函数imadjust()来调整图像灰度值到指定范围。将图2.1.1的灰度范围[130/255 190/255]映像到[0 0.9],成果如图2.1.4所示。



图2.1.4  对比度调整后的图像
(3) 平滑与锐化滤波。空域增强可用平滑和滤波来实现。平滑的目的有两类:一类是在提取较大的方针前去除小的细节或者是将方针内的小间断连接起来;另一类是消除一些离散性和随机性的噪声。而锐化是跟平滑相反的一类措置,目的是突出图像的边缘信息,加强图像的轮廓特征,以便于人眼和机器识别。图2.1.5揭示了空域增强的分歧方式对钢珠打番笕图像的分歧措置成果。图2.1.5(b)是用低通滤波措置的成果,与原始图像对比,噪声减少,但边界特征也被减弱。图2.1.5(d)是高通滤波措置的成果,得到的边缘信息斗劲准确,但信息很少,且随着截止频率增大得到的信息会越少。中值滤波的成果(图2.1.5(c))斗劲清楚地显示了图像的边缘特征。由此得出结论:中值滤波跟高通滤波在图像措置中有较强的锐化能力,尽管在措置过程中也会减弱的图像边界特征;分歧的空域增强方式在分歧的图像、分歧的措置过程中会有分歧的效果,实际应用中应该按照经验来选用。





(a)原始图像                                        (b)低通滤波





                 (c)中值滤波                                        (d)高通滤波
                               图2.1.5 分歧的滤波尝试成果对比
2.2边缘检测
图像的边缘就是指图像灰度发生空间突变的像素的调集。灰度的突变一般常用导数来描述和检测。边缘检测的基本思想是先操作边缘增强算子,突出图像中的局部边缘,然后定义像素的“边缘强度”,通过设置阈值的方式提取边缘点集。但是由于噪声和图像模糊,检测到的边界可能会有间断的情况发生。所以边缘检测包含两项内容:用边缘算子提取边缘点集;在边缘点集中去除某些边缘点,填充一些边缘点,将得到的边缘点集连接为线。



图2.2.1  边缘检测的基本法式
2.2.1 简单的边缘检测算子
常见的边缘检测算子有Roberts算子、Sobel算子、Prewitt算子、LOG算子和Canny算子等。下面具体介绍各个算子及其特点:
(1) Roberts算子  该算子是图像措置的最基本的边缘检测算子,它把任意一对彼此垂直标的目的上的差分当作是梯度的近似求解,采用对角线标的目的相邻两像素之差,即某一像素点(i,j)的Roberts算子值为:
G[i,j]=︱f[i,j]-f[i+1,j+1]︱+︱f[i+1,j]-f[i,j+1]︱

用卷积模板                                                      

把上式暗示为︱︱+︱︱
    Roberts算子提取边缘的成果:边缘较粗,边缘定位不是很准确,容易丢掉一部门边缘,同时没有颠末图像平滑计算,因此不能按捺噪声。
(2) Sobel算子和Prewitt算子  Sobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑感化,能很好的消除噪声的影响。Sobel算子包含两组3x3的矩阵,分袂为横向及纵向模板,将之与图像作平面卷积,即可分袂得出横向及纵向的亮度差分近似值。实际使用中,常用如下两个模板来检测图像边缘。

图2.2.2 Sobel算子
单独使用Sobel算子做边缘检测,边缘定位精度不高,有时还可能对非边缘像素的响应大于某些边缘处的响应或者响应分歧不是很大,造成漏检或误检,但是它对噪声具有较好的鲁棒性。
Prewitt算子和Sobel算子提取边缘的成果差不多。在提取边缘的同时它对噪声具有平滑感化,能够按捺必然的噪声。由于Prewitt边缘检测算子是通过八个标的目的模板对图像进行卷积运算,因此运算量斗劲大。
(3)LOG算子  LOG算子是个二阶算子,将在边缘处发生一个陡峭的零交叉。LOG算子在对图像进行差分运算之前,先对图像使用高斯低通滤波器进行平滑措置,以减少噪声,因此缓解了一般差分对噪声响应很敏感的问题。然后使用Laplacian算子找出图像中的陡峭边缘,可以得到较好的边缘定位精度,但也会造成边缘被漏检的情况。此外,它对噪声过于敏感,使它的使用大为受限。

图2.2.3 Laplacian算子
(4) Canny算子  Canny算子是按照对信噪比与定位乘积进行测度,得到最优化逼近的一阶算子。其本色是用一个准高斯函数做平滑运算,然后以带标的目的的一阶微分算子定位导数最大值。Canny 方式使用两个阈值来分袂检测强边缘和弱边缘,且当弱边缘与强边缘相连时,弱边缘才会包含在输出中。
    Canny算子提取的边缘最为完整,而且边缘的持续性很好,定位斗劲精确。但在实际工作应用中编程较为复杂且运算较慢。
2.2.2 边缘检测应用
在MATLAB中,使用edge()函数检测边缘。edge()函数在检测边缘时可以指定一个灰度阈值,只有满足这个阈值
条件的点才视为边界点。综合上述几种算子,编写相应代码,对图2.1.1进行边缘检测,成果如图2.2.4。





(a)原始图像                                    (b)sobel算子





(c) Roberts算子                                  (d) prewitt算子





(e) LOG算子                                    (f) canny算子
图2.2.4  各种算子检测成果
显然,由图2.2.4看,Roberts算子、Sobel算子、Prewitt算子的措置成果持续性不好,LOG算子的措置成果不精确,而Canny算子的措置成果更多更精确地保留了图像的边缘特征,具有较好的持续性。
3 结论
图像中方针的边缘和轮廓是图像的重要特征的综合,图像措置是一些模糊图像能被有效操作的前提条件。本文只是应用了MATLAB图像措置东西箱的部门功能,除以上介绍的一些基本的图像措置功能外,MATLAB还有许多基于数学形态学与二值图像的操作函数, 如二值图像的膨胀运算dilate()函数、腐蚀运算erode()函数等,本文不再作详细介绍。由此可见,MATLAB语言简洁,功能强大且涉及的专业范围广泛,操作它的图形措置与分析东西,综合多种算法,对图像进行措置,可以大大提高尝试效率,为工作提供良好的条件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 09:06 , Processed in 0.106835 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表