ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:386.45KB ,
资源ID:3986044      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3986044.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图像运算.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图像运算.docx

1、图像运算第十讲 图像运算(二)【目录】一、领域操作 11、概述 12、滑动领域操作 13、分离领域操作 4二、区域操作 71、区域选择 72、区域操作 9三、图像统计 121、象素选择 122、强度描述图 123、图像轮廓图 144、图像柱状图 15【正文】一、领域操作1、概述邻域运算输出G的像素值取决于输入F的像素值及其某个邻域内的像素值。领域大小邻域是一个远小于图像尺寸、形状规则的像素块,例22、33的正方形,或用来近似表示圆及椭圆等形状的多边形。一幅图像所定义的所有邻域应大小相同。邻域类型滑动邻域操作、分离邻域操作。2、滑动领域操作(1) 方式该操作一次处理一个像素,输出图像的每一个像素

2、都是通过对输入图像某邻域内的像素值采用某种代数运算得到的。右图说明了一个65矩阵中3个元素的23滑动邻域,每一个邻域的中心像素都用一个黑点标出。(2) 中心像素是输入图像真正要进行处理的像素。如果邻域含有奇数行和列,那么中心像素就是邻域的真实中心;如果行或列有一维为偶数,那么中心像素将位于中心偏左或偏上方。表示为:floor(m,n+1)/2)例如,在一个22的邻域中,中心像素就是左上方的像素,而右上图所示的23邻域的中心像素为(1,2),即位于邻域中第二列、第一行的像素。(3) 实现步骤* 选择原图一个像素* 确定该像素的邻域* 用一个函数对邻域内的像素求值并返回标量结果* 在输出图像对应的

3、位置填入计算值* 重复计算,遍及所有象素(4) nlfilter滑动领域操作函数【格式】B=nlfilter(A,m n,fun)【说明】A为输入图像,B为输出图像,领域尺寸为mn,fun为运算函数【其它】mean 求向量的平均值, mean2求矩阵的平均值 std 求向量的的标准差,std2 求矩阵的标准差。 median求向量的中值 max 求向量的最大值 min 求向量的最小值 var 求向量的方差可以用inline自定义函数。【例】用函数mean作滑动处理CLFI=imread(tire.tif);I2=nlfilter(I,5 5,mean2);subplot(121),imshow

4、(I,);subplot(122),imshow(I2,); 【例】用自定义函数作滑动处理CLFI=imread(tire.tif);f=inline(max(x(:);I2=nlfilter(I,3 3,f);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(I2); (5) colfilt快速领域操作函数【格式】B=colfilt(A,m n,sliding,fun)【说明】多一个参数sliding,指定该函数作滑动领域操作。这种操作称为列处理,加快操作速度。【例】快速滑动领域操作CLFI=imread(tire.tif);I2=colfilt(

5、I,5 5,sliding,mean);subplot(121),imshow(I,);subplot(122),imshow(I2,); (6) im2col、col2im列操作函数【格式】B=im2col(A,m n,sliding)图像排成列 B=col2im(A,m n,mm,nn,sliding)列重构图像【例】用列操作函数实现滑动CLFI=imread(ic.tif);I1=im2col(I,3 3,sliding);I1=uint8(0 -1 0 -1 4 -1 0 -1 0*double(I1);I2=col2im(I1,3,3,size(I),sliding);subplot

6、(121),imshow(I,);subplot(122),imshow(I2,); 3、分离领域操作(1) 方式分离邻域操作也称图像的块操作。将矩阵划分为mn后得到矩形。分离邻域从左上角开始覆盖整个矩阵,邻域之间没有重叠部分。如果分割的邻域不能很好地适应图像的大小,那么需要为图像进行零填充。右图说明了一个被划分为9个48邻域的1122矩阵,零填充过程将数值0添加到图像矩阵所需的底部和右边,此时图像矩阵大小变为1224。(2) blkproc图像块操作函数【格式】B=blkproc(A,m n,fun)【说明】与滑动操作不同的是整块操作。【例】图像块操作CLFI=imread(tire.tif

7、);f=inline(mean2(x)*ones(size(x);I2=blkproc(I,8 8,f);subplot(1,2,1),imshow(I,)subplot(1,2,2),imshow(I2,) (3) colfilt快速块操作函数【格式】B=colfilt(A,m n,distinct,fun)【说明】参数distinct,说明该函数作快速块操作。【例】快速块操作CLFI=imread(tire.tif);f=inline(ones(64,1)* mean(x);I2=colfilt(I,8 8,distinct,f);subplot(1,2,1),imshow(I,)subp

8、lot(1,2,2),imshow(I2,) (4) im2col、col2im列操作函数【格式】B=im2col(A,m n,distinct)图像排成列 B=col2im(A,m n,mm,nn,distinct)列重构图像【例】用列操作函数实现块操作CLFI=imread(tire.tif);I1=im2col(I,8 8,distinct);I1=ones(64,1)* mean(I1);I2=col2im(I1,8,8,size(I),distinct);subplot(121),imshow(I,);subplot(122),imshow(I2,); 二、区域操作要对特定的区域进行

9、处理时,要定义我们感兴趣的区域。Matlab中,对这个区域的定义通过一个二值图像(与原始图像大小相等)来实现。称为mask图像。所要选定的区域,在相应的mask图中值为1,否则为0。1、区域选择(1) 多边形选择法。用roipoly函数来设置一个多边形区域。【格式】BW = roipoly(I,c,r)【说明】用矢量c、r来指定多边形各定点的x、y坐标【格式】BW = roipoly(I)【说明】交互选择多边形【例】选择区域CLFI=imread(eight.tif);c=222 272 300 270 221 194;r=21 21 75 121 121 75;BW=roipoly(I,c,

10、r);subplot(121),subimage(I);subplot(122),subimage(BW); (2) 灰度选择法。用roicolor函数可以实现安灰度选择区域。【格式】BW = roicolor(A,low,high)【说明】指定灰度范围,返回掩模mask图像【格式】BW = roicolor(A,v)【说明】按向量v指定的灰度,返回掩模mask图像【例】灰度选择法CLFI=imread(rice.tif);BW=roicolor(I,128,255);subplot(121),subimage(I);subplot(122),subimage(BW); (3) 矩阵产生法。用

11、矩阵构造的方法选择区域。【例】灰度选择法CLFI=imread(rice.tif);% BW=zeros(size(I);% BW(100:150,50:140)=1;BW=I150;subplot(121),subimage(I);subplot(122),subimage(BW); 2、区域操作(1) 区域运算可以利用mask函数,进行区域图像的叠加。【例】区域图像叠加I1=double(imread(rice.tif);I2=double(imread(tire.tif);I2=imresize(I2,size(I1),bicubic);BW=zeros(size(I);BW(100:2

12、00,50:200)=1;I3=I1.*BW + I2.*(1-BW);subplot(221),imshow(I1,);subplot(222),imshow(I2,);subplot(223),imshow(BW,);subplot(224),imshow(I3,); (2) 区域滤波Matlab提供roifilt2函数实现对指定区域的滤波或处理。【格式】J=roifilt2(h,I,BW)【说明】h为滤波器,I输入图像,BW指定区域,J输出图像。【例】对指定区域进行锐化CLFI=imread(eight.tif);c=222 272 300 270 221 194;r=21 21 75

13、121 121 75;BW=roipoly(I,c,r);h=fspecial(unsharp); % 滤波函数J=roifilt2(h,I,BW);subplot(121),subimage(I);subplot(122),subimage(J); 【格式】J=roifilt2(I,BW,fun)【说明】用fun函数对指定区域进行运算【例】对指定区域进行运算CLFI=imread(eight.tif);c=222 272 300 270 221 194;r=21 21 75 121 121 75;BW=roipoly(I,c,r);f=inline(uint8(abs(double(x)-1

14、00);J=roifilt2(I,BW,f);subplot(121),subimage(I);subplot(122),subimage(J); (3)区域填充Matlab用函数roifill函数实现对指定区域的填充,填充的值为多边形边界点的灰度平滑值。相当于擦除。【格式】J=roifill(I,c,r) J=roifill(I) J=roifill(I,BW)【例】CLFI=imread(eight.tif);c=222 272 300 270 221 194;r=21 21 75 121 121 75;J=roifill(I,c,r);subplot(121),subimage(I);s

15、ubplot(122),subimage(J); 三、图像统计1、象素选择【格式】pixval on 显示象素值 pixval off关闭象素值显示【说明】该函数用于在图像上交互显示象素值和两点间的距离【格式】P=IMPIXEL交互返回选择点的象素值 P=IMPIXEL(I,C,R) P=IMPIXEL(X,MAP,C,R) 返回指定点的象素值 P=IMPIXEL(RGB,C,R) C,R,P=IMPIXEL(.) 返回坐标和象素值【例】返回真彩图像上三个点的色度RGB = imread(flowers.tif);c = 12 146 410;r = 104 156 129;pixels =

16、impixel(RGB,c,r) pixels = 61 59 101 253 240 0 237 37 44 2、强度描述图【格式】improfile交互获取强度描述图 improfile(I,x,y)指定路径的强度描述图【例】灰度图的强度描述CLFI = imread(alumgrns.tif);x = 35 338 346 103;y = 253 250 17 148;improfile(I,x,y), grid on 【例】彩色图的强度描述CLFI = imread(flowers.tif);x = 35 338 346 103;y = 253 250 17 148;improfile(I,x,y), grid on 3、图像轮廓图【格式】imcontour(I,N)轮廓层数【例】I = imread(ic.tif);imcontour(I,3) 4、图像柱状图【格式】imhist(I,N)N指灰度级【例】I = imread(ic.tif);imhist(I,64)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1