第三章 亮度变换与空间滤波
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014-1-24
例子:使用双立方插补法改变图像的角度
程序: A=imread('hch.jpg'); B=imrotate(A,30,'bilinear','crop'); subplot(1,2,1),imshow(A) title('原始图像') 实验效果: subplot(1,2,2),imshow(B) title('旋转30度后的图像')
2014-1-24
• 2、图像的旋转
函数:imrotate 作用:通过特定的插补方法来改变图像的角度 使用:B=imrotate(A,angle,method) 或者B=imrotate(A,angle,method,‟crop‟) 其中:A是图像矩阵,angle是图像的旋转角度, method可以是nearest,bininear或bicubic,默认 nearest,参数crop表示剪切。
2014-1-24
边缘点处理:
(1)将掩模中心点的移动范围限制在 距离图像边缘不小于(n-1)/2个 像素处。(最优) (2)补零 (3)抽边缘的像素补充
2014-1-24
滤波函数 imfilter
语法: g=imfilter(f,w,filtering_mode,boundary_options,size_o ptions) 其中: (1)filtering_mode是指定在滤波过程中是使用 “相 关‘corr‟”或者”卷积‘conv‟”,默认是相关。P67 (2) boundary_option是边界填充问题,“P”表示填充 0,‘replicate‟表示复制外边界,默认填充0 (3)size_options可以是’same‟或‘full‟,默认是 same
第三章
图像变换与空间滤波
2014-1-24
本章主要内容: 3.1 背景知识 图像旋转和调整大小的函数及用法 3.2 亮度变换函数 (1)函数adjust (2)对数和对比度拉伸变换(intrans函数) 3.3 直方图处理与函数绘图 3.4 空间滤波 (1)线性空间滤波 (2)非线性空间滤波器
2014-1-24
2014-1-24
3.2 图像的增强
1、什么是图像增强 图像增强是指改善图像,以使图像主观 上看起来更好的一种图像处理方法,虽然 我们并不关心一幅图像的内容是什么,但 是我们关心这副图像是否可以得到改善, 比如:是否能观察到更多的细节,是否能 去掉一些不想要的斑点,是否能使对比度 达到更好?等等。
2014-1-24
• 注意: 滤波后的图像的每个元素使用双精度 浮点算术进行运算,然而imfilter会将输出 图像转换为与输入图像相同的类,因此, 若f是一个整数数组,则输出中超过整形范 围的元素将被截断,且小数会四舍五入。 若结果要求更高的精度,则f需要在使用函 数imfilter之前利用im2double或double转换 为double类。
a b
其中,a=(m-1)/2,b=(n-1)/2,为了得到一副 完整的经过滤波处理后的图像,必须对 x=0,1,…,M-1,y=0,1,…,N-1依次应用上述公式, 这样,就保证了对图像中所有像素的处理。
2014-1-24
2014-1-24
掩模(滤波算子):
函数:fspecial(type,para) 功能:用于建立预定义的滤波算子 其中,参数指定算子的类型,para指定相应 的参数。P72 表7.4
2014-1-24
3.4 空间滤波
• 3.4.1基础概念: (1)空间滤波 (2) 掩模 (3)卷积 (4)边缘点处理
2014-1-24
空间滤波:
在大小为m*n的图像f上,用m*n大小的滤 波器进行线性滤波由下式给出:
g ( x, y ) s a t b w( s, t ) f ( x s, y t )
2014-1-24
2、图像增强的两大类方法: 空间域:是指图像平面自身,这类方法 是以对图像的像素直接处理为基础。 频域:将一幅图像像元值在空间上的变 化分解为具有不同振幅、空间频率和相位的 简振函数的线性叠加,图像中各种空间频率成 分的组成和分布称为空间频谱。这种对图像 的空间频率特征进行分解、处理和分析称为 空间频率域处理或波数域处理。 处理技术是 以修改图像的傅氏方法为基础的。
重点: (1)对比度增强方法(adjust和intrans函数) (2)直方图的画法(bar、stem和plot函数) (3)均值及中值滤波方法 难点: 微分算子的锐化作用(掌握拉普拉斯算子、 Robert、Sobel算子)
2014-1-24
3.1 图像的几何操作
• 1、插补运算 插补运算是通过在输入图像中查找与输出 像素对应的点来确定插补像素点的数据值。 MATLAB提供的插补运算: 近邻插补运算(nearest neighbor) 双线性插补运算(bilinear) 双立方插补运算(bicubic)
g1
2014-1-24
g2
g3
2、对数变换和对比度拉伸变换 用于减少动态范围 例:>>f=imread('1x.jpg'); >> figure,imshow(f) >> g=im2uint8(mat2gray(log(1+double(f)))); >> figure,imshow(g) 效果图:
2014-1-24
b、杆状图绘制 语法: stem(horz,v,‟color_linestyle_marker‟,‟fill‟) color 颜色,默认为黑色 linestyle:线型,默认为实线 marker:标记点,默认为圆形 注:若使用fill,且标记点为圆形、方形或菱 形,则标记点的颜色为color指定的颜色。
2014-1-24
空间域: 灰度变换 :基于点操作,将每一个像素的灰 空域增强按技术不同可分为灰度变
度值按照一定的数学变换公式转换为一个 新的灰度值。常用的有 :对比度增强、直方 换和空间滤波。 图均衡化等方法。 空域滤波:基于邻域处理,应用某一模板对 每个像素及其周围邻域的所有像素进行某 种数学运算,得到该像素的新的灰度值。 图像平滑与锐化技术就属于空域滤波。
2014-1-24
3.3、直方图处理与函数绘图
(1)什么是直方图? 图像的直方图是一个关于图像灰度级别的离散
函数,描述的是图像中具有该灰度级别的像素个 数。直方图归一化之后,该函数在所有灰度级上的 离散和为1。
(2)图像的直方图和图像质量的关系
“差”图像的直方图很窄
“好”图像的直方图则要平坦很多
2014-1-24
2014-1-24
• 3、调整图像的大小
函数:imresize 作用:通过特定的插补方法来调整图像的大小 使用(1)B=imresize(A,m,method) 用method方法返回大小等于A的m倍 的图像B。 (2)B=imresize(A,[mrows ncols],method) 用method方法返回大小等于mrows*ncols 的图像B。
2014-1-24
3、亮度变换的一个M函数 intrans 要注意的: (1)输入的变量是如何处理的 (2)错误检验是如何插入代码的 (3)输入图像的类是如何与输出图像的类相匹配的 例子:>> f=imread('3-2.jpg'); >> g=intrans(f,'stretch',mean2(im2double(f)),0.9); >> figure,imshow(g)
2014-1-24
c、plot函数 语法: plot (horz,v,‟color_linestyle_marker‟) 功能:将一组点用直线连接起来 color 颜色,默认为黑色 linestyle:线型,默认为实线 marker:标记点,默认为圆形
2014-1-24
• • • •
以下面的例子说明用法: >> x=0:pi/15:2*pi; >> y1=sin(x); y2=cos(x); >> plot(x,y1,'b:+',x,y2,'g-.*')
>> f=imread('3-3.jpg'); >> h=imhist(f); >> h1=h(1:10:256); >> horz=1:10:256; >> bar(horz,h1) >> axis([0 255 0 15000]) >> set(gca,'xtick',0:50:255) >> set(gca,'ytick',0:2000:15000) >> xlabel('x轴') >> ylabel('y轴') >> title('直方图绘制')
2014-1-24
程序: A=imread('3-1.jpg'); figure,imshow(A) w1=fspecial('average',3); w2=fspecial('average',5); w3=fspecial('average',9); g1=imfilter(A,w1,'replicate'); g2=imfilter(A,w2,'replicate'); g3=imfilter(A,w3,'replicate'); subplot(2,2,1),imshow(A) subplot(2,2,2),imshow(g1) subplot(2,2,3),imshow(g2) subplot(2,2,4),imshow(g3)
2014-1-24
color
符号 k w r g b c y m
2014-1-24
linestyle
符号 -: -. 线型 实线 虚线 点线 点划 线 无线
marker
符号 + o * . x s d none 颜色 加号 圆型 星号 点 叉型 方形 菱形 无标记
Βιβλιοθήκη Baidu颜色 黑 白 红 绿 蓝 青 黄 品红
(3)直方图处理 函数:imhist 语法:h=imhist(f,b);默认b=256
2014-1-24
(4)直方图均衡化(扩展动态范围对比度增强)不适合平坦的直方图 函数: histeq 语法:g=histeq(f,nlev) //nlev输出图像指定的灰度级数,默认:64,一般来说 我们把nlev的值赋给256
2014-1-24
例子:调整图像的大小
程序:
>>A=imread('hch.jpg'); >> figure,imshow(A) >> >>B=imresize(A,0.5,'bilinear'); >> figure,imshow(B)
实验效果:
注意:若指定图像和输入图像具有不同的宽高比, 则输出图像会变形。
2014-1-24
卷积:
函数:conv2(A,B) 语法格式:c=conv2(A,B) 其中:若A的大小为[ma,na],B的大小为 [mb,nb],则c的大小为[ma+mb-1,na+nb-1]。 c=conv2(A,B,shape)用于指定卷积的范围。 shape的值为’full‟、‘same‟ 例子:A=magic(5); B=magic(3); C=conv2(A,B,‟same‟)
none
程序: >> h=imhist(f); >> h1=h(1:10:256); >> horz=1:10:256; >> stem(horz,h1,'fill') >> axis([0 255 0 15000]) >> set(gca,'xtick',0:50:255) >> set(gca,'ytick',0:2000:15000)
2014-1-24
Bar函数例子: y=[1 2 3 4;5 4 6 2;3 1 2 3]; x=[1:3:9]; Subplot(1,2,1) bar(x,y,‟stack‟)‟group‟ Subplot(1,2,2) bar(x,y,0.6)
2014-1-24
• • • • • • • • • • •
2014-1-24
(5)直方图的绘制
a、条形图函数:bar 语法:bar(horz,v,width,style) 其中: v是一个列向量,包含将被绘制的点 horz是一个与v有相同维数的向量 width是[0 1]之间的值,代表条宽度,默认0.8 style是显示样式,’group‟表示成组显示,’sta 表示层叠显示。
2014-1-24
1、imadjust函数 (1)反转(用于增强嵌入在大片黑色区域中的白色细节) 语句:g=imadjust(f,[0 1][1 0]); 等价于:g=imcomplement(f); 效果图:
反转
2014-1-24
(2) imadust(突出感兴趣的亮度带) 语句:g1=imadjust(f,[0.5 0.75][0 1]); 自适应:g1=imadjust(f,stretchlim(f),[ ],) (3) 整体变亮或整体变暗(Gamma校正) 语句:g3=imadjust(f,[ ],[ ],0.5);//整体变亮 g4=imadjust(f,[ ],[ ],2);//整体变暗 效果图: