4、图像空域处理与邻域操作(2 图像邻域操作)

  • 格式:ppt
  • 大小:1.38 MB
  • 文档页数:50

下载文档原格式

  / 50
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

输入
255
x Dm 1 1 f ( x) sin 1 2 Dm 2 sin 2
x Dm 1 1 f ( x) tan 1 2 Dm 2 tan 2
2、邻域操作
数字图像处理
• 分离邻域操作
– blkproc图像块操作函数
• 格式
B=blkproc(A,[m n],fun)
• 说明
– 与滑动操作不同的是整块操作。
2、邻域操作
数字图像处理
• 分离邻域操作
– 图像块操作
• • • • • • CLF I=imread('tire.tif'); 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,[])
2、邻域操作
数字图像处理
• 滑动邻域操作
– 快速滑动邻域操作
• • • • • CLF I=imread('tire.tif'); I2=colfilt(I,[5 5],'sliding','mean'); subplot(121),imshow(I,[]); subplot(122),imshow(I2,[]);
降低较亮及较暗物体的 对比度,加强中间灰度 级物体的对比度。 0<<1 压低中间灰度级物体的 对比度,加强较亮及较 暗物体的对比度。 0<<1
1、点运算
数字图像处理
Photoshop软件中Image/Adjust/Curves调整选项的几种情况。
主要内容
数字图像处理
• 1、点运算 • 2、邻域操作
2、邻域操作
数字图像处理
• 分离邻域操作
– 图像块操作
• • • • • • CLF I=imread('tire.tif'); f=inline('ones(64,1)* mean(x)'); I2=colfilt(I,[8 8],'distinct',f); subplot(1,2,1),imshow(I,[]) subplot(1,2,2),imshow(I2,[])
1、点运算
数字图像处理
• 典型的点运算应用包括:
–光度学标定:对光失真光学图像的 校正。
• 例如:图像被非线性的仪器数字化, 可以用点运算变换灰度级,使之反映 光照强度的等步长增量。)
–对比度增强:调整图像的亮度、对 比度,以便观察。
1、点运算
数字图像处理
• 典型的点运算应用包括:
–显示标定:显示校正,突出感兴趣 的局部特征,甚至补偿显示屏的伽 玛值。
1、点运算
数字图像处理
• 点运算是像素的逐点运算,它将输 入图像映射为输出图像,输出图像 每个像素点的灰度值仅由对应的输 入像素点的灰度值决定。点运算不 会改变图像内像素点之间的空间关 系。
1、点运算
数字图像处理
• 设输入图像为A(x,y),输出图像为 B(x,y),则点运算可表示为:
B(x,y)=f(A(x,y))
2、邻域操作
数字图像处理
• 邻域运算
– 输出目标图像G的像素值取决于输入原图像F的 像素值及其某个邻域内的像素值。
• 邻域大小
– 邻域是一个远小于图像尺寸、形状规则的像素 块,例2×2、3×3的正方形,或用来近似表示 圆及椭圆等形状的多边形。一幅图像所定义的 所有邻域应大小相同。
• 邻域类型
– 滑动邻域操作、分离邻域操作。
数字图像处理
1、点运算
• 线性点运算 – fruits=imread('fruits.jpg'); – I=double(fruits); – J=I*0.43+60; – fruits2=uint8(J); – subplot(1,2,1),imshow(fruits); – subplot(1,2,2),imshow(fruits2);
DB 0.8 DA
DB 1 DA 255
1、点运算
• 线性点运算 – rice=imread('rice.png'); – I=double(rice); – J=I*0.43+60; – rice2=uint8(J); – subplot(1,2,1),imshow(rice); – subplot(1,2,2),imshow(rice2);
数字图像处理
2013年9月
主要内容
数字图像处理
• 1、点运算 • 2、邻域操作
1、点运算
数字图像处理
• 点运算也称为对比度增强和拉伸、灰度变 换,是一种通过对图像中的每个像素值进 行计算,从而改善图像显示效果的操作。 • 点运算常用于改变图像的灰度范围及分布, 是图像数字化及图像显示的重要工具。在 真正进行图像处理之前,有时可以用点运 算来克服图像数字化设备的局限性。
s
r
a 1 输出对比度加大(扩) a 1 输出对比度减小(压) a 1、b 0 不发生变化 a 1、b 0 灰度值上移或下移 a 0 图像求补(暗区域变量,亮区 域变暗)。
1、点运算 • 线性点运算
数字图像处理
lena.png
DB DA 50
DB 1.5 DA
2、邻域操作
数字图像处理
• 分离邻域操作
–方式
– 分离邻域操作也称图像的块操作。将矩 阵划分为m×n后得到矩形。 – 分离邻域从左上角开始覆盖整个矩阵, 邻域之间没有重叠部分。如果分割的邻 域不能很好地适应图像的大小,那么需 要为图像进行零填充。
2、邻域操作
数字图像处理
• 分离邻域操作
–方式
– 下图说明了一个被划分为9个4×8邻域的 11×22矩阵,零填充过程将数值0添加到 图像矩阵所需的底部和右边,此时图像 矩阵大小变为12×24。
数字图像处理
1、点运算
• 线性点运算 – rice=imread('rice.png'); – I=double(rice); – J=-1*I; – subplot(1,2,1),imshow(rice,[]); – subplot(1,2,2),imshow(J,[]);
数字图像处理
1、点运算
பைடு நூலகம்、邻域操作
数字图像处理
• 滑动邻域操作
– 方式 – 该操作一次处理一个像素, 输出图像的每一个像素都是 通过对输入图像某邻域内的 像素值采用某种代数运算得 到的。右图说明了一个6×5 矩阵中3个元素的2×3滑动 邻域,每一个邻域的中心像 素都用一个黑点标出。
2、邻域操作
数字图像处理
• 滑动邻域操作
• 说明
– A为输入图像,B为输出图像,邻域尺寸为m×n,fun为运算函数
• 其它
– – – – – – mean -求向量的平均值, mean2-求矩阵的平均值 std -求向量的的标准差,std2 -求矩阵的标准差。 median-求向量的中值 max -求向量的最大值 min -求向量的最小值 var -求向量的方差
2、邻域操作
数字图像处理
• 分离邻域操作
– im2col、col2im列操作函数
• 格式
图像排成列
B=im2col(A,[m n],‘distinct’)
数字图像处理
1、点运算
数字图像处理
• 非线性点运算
– 非线性点运算对应于非线性的灰度变换函数。 – 左图为几种单调非减灰度变换函数,它们都有 正斜率,因而可以保留图像的基本外貌,但图 像局部对比度会发生变化。
255 输出
0
输入
255
f ( x) x Cx( Dm x)
C>0:中间灰度增加 C<0:中间灰度减小 C=0:无变化 Dm:灰度级上限
• 线性点运算 – fruits=imread('fruits.jpg'); – I=double(fruits); – J=-1*I+255; – fruits2=uint8(J); – subplot(1,2,1),imshow(fruits,[]); – subplot(1,2,2),imshow(fruits2,[]);
2、邻域操作
数字图像处理
• 滑动邻域操作
– im2col、col2im列操作函数
• 格式
图像排成列
B=im2col(A,[m n], 'sliding')
列重构图像
B=col2im(A,[m n],[mm,nn],'sliding')
2、邻域操作
数字图像处理
• 滑动邻域操作
– 快速滑动邻域操作
• • • • • • • CLF I=imread('tire.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,[]);
2、邻域操作
数字图像处理
• 分离邻域操作
– colfilt快速块操作函数
• 格式
B=colfilt(A,[m n],'distinct',fun)
• 说明
– 参数'distinct',说明该函数作快速块操作。
2、邻域操作
数字图像处理
• 将输入图像的每一个 邻域进行重新排列来 创建一个临时矩阵, 在此之前如果必要会 对原始图像进行零填 充。
2、邻域操作
数字图像处理
• 滑动邻域操作
–colfilt快速邻域操作函数
• 格式
B=colfilt(A,[m n],'sliding',fun)
• 说明
–多一个参数'sliding',指定该函数作滑动 邻域操作。这种操作称为列处理,加快操 作速度。
2、邻域操作
数字图像处理
• 原始图像中的每一个像素都对应于colfilt函 数所创建的临时矩阵的一个单独列,该列 包含该像素邻域内的所有数值。
2、邻域操作
数字图像处理
• 滑动邻域操作
– 实现步骤
• 选择原图一个像素 • 确定该像素的邻域 • 用一个函数对邻域内的像素求值并返回标量 结果 • 在输出图像对应的位置填入计算值 • 重复计算,遍及所有像素
2、邻域操作 • 滑动邻域操作
– nlfilter滑动邻域操作函数
• 格式
数字图像处理
B=nlfilter(A,[m n],fun)
• 例如:如果图像像素的灰度值与屏幕 上点的主观亮度呈非线性,就可用点 运算校正。
1、点运算
数字图像处理
• 典型的点运算应用包括:
–轮廓线确定:为图像加上轮廓线, 对图像阈值化。
• 例如:根据灰度线划分图像区域、等 高线。
–图像裁剪:将输出图像的灰度级限 制在可用范围内。
• 例如:将灰度级在0-255之外的那些 值裁剪掉。
1、点运算
• 非线性点运算
255
数字图像处理
f
– 非线性点运算对应与非线性的灰度变换函数。 – 右图为几种单调非减灰度变换函数,它们都 输出 有正斜率,因而可以保留图像的基本外貌, 但图像局部对比度会发生变化。 C>0:中间灰度增加 ( x) x Cx( Dm x) C<0:中间灰度减小 0 C=0:无变化 Dm:灰度级上限
• 点运算完全由灰度映射函数f决定。 根据f的不同可以将图像的点运算 分为线性点运算和非线性点运算两 种。
1、点运算 • 线性点运算
数字图像处理
– 线性点运算的灰度变换函数形式可以采用线性方程描 述,即
s = ar + b
– 其中,r 为输入点的灰度值,s为相应输出点的灰度值。
255 a b 0 255
• 可以用inline自定义函数。
2、邻域操作
数字图像处理
• 滑动邻域操作
– 用函数mean作滑动处理
• • • • • CLF I=imread('tire.tif'); I2=nlfilter(I,[5 5],'mean2'); subplot(121),imshow(I,[]); subplot(122),imshow(I2,[]);
– 中心像素 – 是输入图像真正要进行处理的像素。如 果邻域含有奇数行和列,那么中心像素 就是邻域的真实中心;如果行或列有一 维为偶数,那么中心像素将位于中心偏 左或偏上方。表示为:
floor(([m,n]+1)/2)
2、邻域操作
数字图像处理
• 滑动邻域操作
– 中心像素
• 例如,而下图所示的2×3邻域的中心像素为 (1,2),即位于邻域中第二列、第一行的像素。