MATLAB应用图像处理 第二版 教学课件 ppt 作者 胡晓军_ 第7章

上传人:E**** 文档编号:89348263 上传时间:2019-05-23 格式:PPT 页数:164 大小:5.11MB
返回 下载 相关 举报
MATLAB应用图像处理 第二版 教学课件 ppt 作者 胡晓军_ 第7章_第1页
第1页 / 共164页
MATLAB应用图像处理 第二版 教学课件 ppt 作者 胡晓军_ 第7章_第2页
第2页 / 共164页
MATLAB应用图像处理 第二版 教学课件 ppt 作者 胡晓军_ 第7章_第3页
第3页 / 共164页
MATLAB应用图像处理 第二版 教学课件 ppt 作者 胡晓军_ 第7章_第4页
第4页 / 共164页
MATLAB应用图像处理 第二版 教学课件 ppt 作者 胡晓军_ 第7章_第5页
第5页 / 共164页
点击查看更多>>
资源描述

《MATLAB应用图像处理 第二版 教学课件 ppt 作者 胡晓军_ 第7章》由会员分享,可在线阅读,更多相关《MATLAB应用图像处理 第二版 教学课件 ppt 作者 胡晓军_ 第7章(164页珍藏版)》请在金锄头文库上搜索。

1、第7章 MATLAB图像增强与复原,7.1 图像增强 7.2 图像复原 习题,7.1 图 像 增 强,7.1.1 灰度变换增强 1. 像素值及其统计特性 图像的灰度变换方法有很多种,其基本原则是利用某种变换函数对图像进行点运算,从而修改图像的像素灰度值。显然,为了选择一种合理的变换函数,首先要对原始图像的像素灰度值有个大概的了解,,(1) 单个像素的选择。 MATLAB图像处理工具箱包括两个能够提供指定像素信息的函数:pixval函数和impiex函数。当鼠标在图像上移动时,pixval函数将交互式地显示像素的数据值,同时还可以显示两个像素间的欧几里得距离;impiex函数返回被选择像素或像素

2、集合的数据值,既可以通过输入参数定义像素坐标,又可以使用鼠标来选择。,使用pixval函数必须首先显示图像,然后输入prival on命令打开图像窗口进行交互访问。Prival将在图形窗口的底部自动添加一个黑色的状态栏,这个状态栏将显示当前鼠标所在像素的x和y坐标以及该像素的颜色数据。如果用户在图像中点击并拖动鼠标,那么prival还将显示最初点击点与鼠标当前所在像素之间的欧几里得距离。如果想退出交互操作,可输入prival off命令。如果按照以下格式调用prival,那么将打开由参数FIG指定的窗口进行交互访问(OPTION参数可以为on或off)。,Prival(FIG,OPTION)

3、Prival函数给出的像素灰度信息比函数impixel多,但是impixel函数的优势在于它能够将结果返回到一个变量中,以后可以通过交互式或非交互式的方法对这个变量进行访问或操作。交互式impixel函数的调用格式如下: C, R, P= impixel(X, MAP),其中,X表示输入图像,MAP为索引图像的调色板(仅当图像为索引图像时才有此参数),C表示指定像素的颜色,R和P表示像素的坐标。如果在输入图像参数后面给出两个指定像素坐标的向量,那么impixel函数将返回指定像素的灰度;如果调用impixel函数时没有指定输入参数,那么系统将自动选择位于当前坐标轴中的图像。在交互方式下,选择完

4、毕后点击【返回】命令,impixel函数将返回被选像素的颜色数据。例如,以下代码首先调用impixel函数,通过交互方式选择三个像素,点击【返回】命令后得到所选像素的数值:,imshow canoe.tif vals=impixel 三个被选像素的颜色数据如下: vals =图7.1 获取单个像素数值示意图 0.2902 0.3529 0.2588 0.1922 0.1922 0.1608 0.2235 0.1922 0.1608 0.2902 0.2588 0.1922 0.1608 0.1294 0.1294 从图7.1中可以看出,第二个像素位于图中的小船上,图形颜色与输出的数据一致。,图

5、7.1 获取单个像素数值示意图,(2) 线段上的像素灰度分布的计算和绘制。 函数improfile能够计算并绘制图像中一条或多条线段上的所有像素的灰度值。调用该函数时,可以使用端点坐标作为输入参数来定义线段,也可以使用鼠标交互式地定义线段。非交互式improfile函数的调用格式如下: C=improfile(I, xi, yi) 其中,I为输入图像,xi和yi是两个向量,用来指定线段的端点。C是线段上各点的灰度或颜色值。如果调用improfile函数时不指定任何输入参数,那么当鼠标位于图像中时会变为十字形,可以通过点击鼠标定义线段的端点。点击【返回】命令后,improfile函数将在下一个新

6、的图形窗口中显示所得的线段灰度值的分布情况。,无论是交互还是非交互模式,improfile函数都将使用插值方法来确定曲线上等间隔点的数值(缺省情况下,improfile函数使用最近邻域插值方法,也可以使用自定义的插值方法)。improfile函数在处理灰度图像和RGB图像时能够获得非常好的效果。对于单独的线段,improfile函数将在二维视图中绘制点的灰度值;对于多条曲线,improfile函数将在三维视图中绘制灰度值。下例首先调用improfile函数,然后使用鼠标指定一条线段,该线段(图7.2(a)方框中的线段)的起点在上边,得到的像素分布结果如图7.2(b)所示。,I = fitsre

7、ad(solarspectra.fts); imshow(I, ); improfile,图7.2 线段上的像素灰度分布,对于RGB图像,improfile函数将显示所选线段上像素的红、绿、蓝颜色分量的数值。下例说明了improfile函数如何操作RGB图像。图7.3(a)中的白线表明选择的线段,起点在左方,灰度分布曲线如图7.3(b)所示。线段与图像颜色具有一一对应的关系,例如,图形的中心区域说明了红色和绿色具有较高的亮度,而蓝色亮度较低,这些数值对应于图像中的线段所经过的图形。 imshow peppers.png improfile,图7.3 线段上的像素灰度分布,(3) 图像等高线。

8、可以使用工具箱函数imcontour来显示灰度图像数据的等高线图形,这个函数与MATLAB的contour函数类似,但是imcontour函数能够自动进行坐标轴设置,使输出图形的方向和外观与图像吻合。imcontour函数的调用格式非常简单,下例将显示一幅灰度图像(如图7.4(a)所示)以及图像数据的等高线图(如图7.4(b)所示): I = imread(rice.png); imshow(I) figure, imcontour(I, 3),图7.4 灰度图像与其等高线图形比较,对于imcontour函数生成的图形,可以使用MATLAB的标记函数对其进行标记。例如,使用clabel函数来生

9、成一个坐标轴标签。,(4) 直方图。 图像的直方图是一个显示灰度或索引图像亮度分布情况的图表。图像直方图函数imhist通过使用n个等间隔的柱(每一柱代表一个数值范围)来创建这个图表,然后计算每个范围内的像素个数。imhist函数的调用以图像和所需的柱数目作为输入参数,自动绘制图像的直方图。下面这个例子将显示一幅米粒图像(如图7.5(a)所示)和一个64柱的直方图(如图7.5(b)所示)。 I = imread(rice.png); imshow(I) figure, imhist(I, 64),图7.5 图像与其直方图比较,根据直方图显示,数值100附近出现了一个高峰,这个高峰对应于米粒图像

10、中的背景像素。,(5) 统计摘要。 可以使用工具箱函数mean2、std2和corr2来计算图像的标准统计特性。mean2和std2函数计算矩阵元素的平均值和标准偏差;corr2函数计算两个相同大小矩阵的相关系数。事实上,以上这些函数都是MATLAB内核函数mean、std和corrcoef的二维版本。,(6) 区域属性度量。图7.6 硬币边缘 可以使用regionprops函数计算图像的区域属性(如面积、质心、区域边框等)。例如,调用以下命令先做出一个如图7.6所示的硬币边缘图像: I = imread(coins.png); BW = edge(I, sobel); figure, ims

11、how(BW) 然后调用regionprops函数, L=bwlabel(BW); Stats=regionprops(L,all); Stats(23),可以得到以下的图像属性统计结果: ans = Area: 5 Centroid: 51.2000 47 BoundingBox: 49.5000 44.5000 4 5 SubarrayIdx: 45 46 47 48 49 50 51 52 53 MajorAxisLength: 7.3702 MinorAxisLength: 1.4513 Eccentricity: 0.9804 Orientation: -50.6550 Convex

12、Hull: 7x2 double,ConvexImage: 5x4 logical ConvexArea: 7 Image: 5x4 logical FilledImage: 5x4 logical FilledArea: 5 EulerNumber: 1 Extrema: 8x2 double EquivDiameter: 2.5231 Solidity: 0.7143 Extent: 0.2500 PixelIdxList: 5x1 double PixelList: 5x2 double Perimeter: 10.4853,2. 直方图灰度变换 根据以上介绍的图像统计信息可以推断出许多

13、种图像灰度变换方法,其中最常用的就是直方图变换方法,下面将对直方图变换方法做详细的说明。 直方图是图像分析中用来说明图像灰度分布的图形,直方图的每一个分支表示对应灰度级出现的频数(即该灰度级像素个数与像素总数的比值)。根据直方图的信息可以选择一种合理的变换算法对图像进行增强操作。例如,如果一幅图像的直方图说明该图像的灰度值较小,那么可以使用一个线性灰度调节函数来增大图像每一个像素的灰度值。,如果用变量f代表输入图像中的像素灰度,用g代表输出图像中的像素灰度,那么f和g都是数值在0,255范围内的连续随机变量。设输入和输出图像的灰度概率密度函数分别为Pf ( f )和Pg(g),那么所谓的直方图

14、变换就是利用一个转移函数对输入图像的像素灰度f进行计算,求出输出像素灰度g = (f ),使得Pg(g)服从某种指定的概率密度分布形式,常见的有均匀分布、指数分布、双曲线分布等。根据概率密度分布的不同形式,采用的转移函数形式也不同。表7.1给出了几种不同输出图像灰度概率密度分布情况所对应的转移函数表达式,其中,输入图像灰度级个数为L,f的灰度区间为fmin,fmax,g的灰度区间为 gmin,gmax,C( f )表示输入图像灰度的累计分布函数,其定义如下:,表7.1 各种概率分布下的概率分布密度及其转移函数,(7.1),图像处理中经常利用的直方图均衡化就是使输出像素灰度的概率密度均匀分布的灰

15、度变换方法。转移函数编程计算通常都是比较复杂的,在实际应用中,一般采用较为简单的转移函数形式来实现特殊要求的图像增强效果。 MATLAB的图像处理工具箱提供了一个灰度变换函数imadjust函数来实现图像的直方图调节。imadjust函数的一般调用格式如下: J = imadjust (I,low_in high_in, low_out high_out),其中,low_in和high_in参数分别用来指定输入图像需要映射的灰度范围,low_out和high_out指定输出图像所在的灰度范围。另外,imadjust函数还可以接受一个可选的参数来指定修正因数,根据值的不同,输入图像与输出图像间的

16、映射可能是非线性的。图7.7说明了imadjust函数转移函数的形式和参数,缺省情况下 = 1,表示在low和high之间的数值将会线性地映射为bottom和top之间的数值。可以是从0到无穷的任意数值。如果数值为1,那么映射将是线性的;如果1,那么映射将会对图像的像素灰度值加权,使输出像素灰度值比原来大;如果1,那么映射加权后的灰度值比原来小。图7.7给出了1时的数值映射曲线,其中x轴代表输入图像的灰度值,y轴代表输出图像的灰度值。,图7.7 不同值对应的转移函数曲线,下面通过一个例子来说明imadjust函数的使用方法。从图7.5(a)中可以看出,图像rice.tif是一个对比度较低的函数,可以使用直方图灰度变换来改善图像的对比度,该图像的直方图参见图7.5(b)。从图7.5(b)中可以看出,该图像的灰度值全部位于40255之间。下面使用imadjust函数将图像的灰度值重新进行映射,使之填满整个灰度值允许的范围0

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号