- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10讲 图像运算二
第十讲 图像运算(二)
目 录
§ 10.1 、领域操作 2
1、概述 2
2、滑动领域操作 2
3、分离领域操作 5
§ 10.2 、区域操作 8
1、区域选择 8
2、区域操作 10
§ 10.3 、图像统计 13
1、象素选择 13
2、强度描述图 13
3、图像轮廓图 15
4、图像柱状图 16
§ 10.1 、领域操作
1、概述
邻域运算-输出G的像素值取决于输入F的像素值及其某个邻域内的像素值。
领域大小-邻域是一个远小于图像尺寸、形状规则的像素块,例2×2、3×3的正方形,或用来近似表示圆及椭圆等形状的多边形。一幅图像所定义的所有邻域应大小相同。
邻域类型-滑动邻域操作、分离邻域操作。
2、滑动领域操作
(1) 方式
该操作一次处理一个像素,输出图像的每一个像素都是通过对输入图像某邻域内的像素值采用某种代数运算得到的。右图说明了一个6×5矩阵中3个元素的2×3滑动邻域,每一个邻域的中心像素都用一个黑点标出。
(2) 中心像素
是输入图像真正要进行处理的像素。如果邻域含有奇数行和列,那么中心像素就是邻域的真实中心;如果行或列有一维为偶数,那么中心像素将位于中心偏左或偏上方。表示为:
floor(([m,n]+1)/2)
例如,在一个2×2的邻域中,中心像素就是左上方的像素,而右上图所示的2×3邻域的中心像素为(1,2),即位于邻域中第二列、第一行的像素。
(3) 实现步骤
* 选择原图一个像素
* 确定该像素的邻域
* 用一个函数对邻域内的像素求值并返回标量结果
* 在输出图像对应的位置填入计算值
* 重复计算,遍及所有象素
(4) nlfilter滑动领域操作函数
【格式】B=nlfilter(A,[m n],fun)
【说明】A为输入图像,B为输出图像,领域尺寸为m×n,fun为运算函数
【其它】mean -求向量的平均值, mean2-求矩阵的平均值
std -求向量的的标准差,std2 -求矩阵的标准差。
median-求向量的中值
max -求向量的最大值
min -求向量的最小值
var -求向量的方差
可以用inline自定义函数。
【例】用函数mean作滑动处理
CLF
I=imread(tire.tif);
I2=nlfilter(I,[5 5],mean2);
subplot(121),imshow(I,[]);
subplot(122),imshow(I2,[]);
【例】用自定义函数作滑动处理
CLF
I=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,指定该函数作滑动领域操作。
这种操作称为列处理,加快操作速度。
【例】快速滑动领域操作
CLF
I=imread(tire.tif);
I2=colfilt(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)-列重构图像
【例】用列操作函数实现滑动
CLF
I=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(121),imshow(I,[]);
subplot(122),imshow(I2,[]);
3、分离领域操作
(1) 方式
分离邻域操作也称图像的块操作。将矩阵划分为m×n后得到矩形。分离邻域从左上角开始覆盖整个矩阵,邻域之间没有重叠部分。如果分割的邻域不能很好地适应图像的大小,那么需要为图像进行零填充。
右图说明了一个被划分为9个4×8邻域的11×22矩阵,零填充过程将数值0添加到图像矩阵所需的底部和右边,此时图像矩阵大小变为12×24。
(2) blkproc图像块操作函数
【格式】B=blkproc(A,[m n],fun)
【说明】与滑动操作
文档评论(0)