- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图像处理(第六周备课)
3.2 图像的邻域操作 邻域操作 指在图像处理时,输入要处理像素的某邻域内各个像素值,输出处理后像素的新值,处理结果与邻域内各像素值有关。 【例3-10】读入荷花图像,并化为灰度图像矩阵。 A0=imread(D:\hehua.jpg); A1=rgb2gray(A0) A2=double(A0); A3=floor((A0(:,:,1)+A0(:,:,2)+A0(:,:,3))/3) subplot(1,3,1) imshow(A0) subplot(1,3,2) imshow(A1) subplot(1,3,3) imshow(A3) Matlab邻域操作函数 nlfilter函数: 该函数被调用的一般形式为:B =nlfilter(A,[M N],FUN),其中A是被处理的图像,[M N]表示滑动块的高为M、宽为N。FUN是要对滑动覆盖区域进行操作的函数名,该函数可以是各种滤波算子,可以是任意定义的矩阵。 nlfilter函数 nlfilter函数 【例3-13】使用nlfilter函数对图像进行均值平滑邻域操作。 除了排序滤波是非线性滤波,还可以定义一个非线性函数来进行滤波操作。 随着(x,y)的改变, A表示的算子在图像上滑动。 在数学意义上完成了二阶偏倒数的计算; 在图像处理意义上完成了基于拉普拉期算子的滤波操作。 算子:A= fspecial(laplacian,ALPHA)产生的滤波器 非线性滤波也是基于邻域操作的,但是不象线性滤波那样,滤波器与对应元素相乘然后相加。 非线性滤波不再用线性组合的方法得到新的元素,使用的是统计的方法或非线性组合的方法。 fun = inline(median(x(:))); B = nlfilter(A1,[3 3],fun); median(x(:)),这种排序取中值操作就是一种非线性滤波操作。 3、非线性空间滤波 MATLAB还提供了函数medfilt2()专门进行二维中值滤波。 【例3-19】使用函数medfilt2进行二维中值滤波。 设计如下程序: A= imread(‘D:\005.jpg); A1=rgb2gray(A); B=medfilt2(A1); subplot(1,2,1) imshow(A) subplot(1,2,2) imshow(B) 从上图可以看出,中值滤波器具有去掉噪音的功能,,但是同时也把窄的边线也滤掉了。中值滤波的效果比较好是因为噪音的颜色比较突出,多数不是一个小区域内各个颜色值的中间值。 从【例3-19】结果可以看出,去除噪音的效果不是太好,下面可以使用一个通用的统计排序滤波器函数ordfilt2,该函数的调用方式为: B=ordfilt2(A,order,domain) A:为要处理的图像矩阵。 domain:为一个矩阵,大小为滑动操作时邻域的大小。 【例3-20】使用函数ordfilt2进行排序滤波。 A= imread(D:\005.jpg); A1=rgb2gray(A); order=1; domain=[1 0 0 1; 0 0 0 0;0 0 0 0;1 0 0 1]; B=ordfilt2(A1,order,domain); subplot(1,2,1);imshow(A) subplot(1,2,2);imshow(B) 上例程序:B=ordfilt2(A1,order,domain)中: domain:进行滑动操作时,当算子滑动到一个新的位置,就把domain中有1的位置对应的(图像上)元素的值取出排序。 order:为排序后选取第几个作为输出。 例如:domain为[4 4]大小,四个角上的值为1,其他位置为0。当滑动到一个新的位置,就把[4 4]大小的被覆盖区域中的4个顶点的值取出排序。order=1,所以取4个顶点的最大值。 【例3-21】使用colfilt函数进行非线性滤波操作。 function v=gmean(A) [m n]=size(A) v=prod(A,1).^(1/(m+n)) B=imread(d:\005.jpg) C=rgb2gray(B) D=double(C) E=padarray(D,[3 3],replicate) F=colfilt(E,[3 3],sliding,@gmean) subplot(1,2,1) imshow(C) subplot(1,2,2) imshow(F) * * 图 像 处 理 邻域操作使用的方法 使用算子模版逐行(或逐列)地图像上滑动,滑动时对模版经过区域进行运算,把计算的结果作为区域中心像素的新值,所以有时也称为滑动邻域操作。 荷花图像是方形的,高与宽都为480。A1(:,:,1) 、A1(:,:,2) 与
文档评论(0)