MATLAB 实验3-3

拓展资源 3.3 实 验 指 导
3.3.1 图像的点运算
1.实验内容
对一灰度图像,通过选择不同的灰度级变换函数 s  T r ( ) 实现图像的灰度范围线性扩展
和非线性扩展,以及图像的灰度倒置和二值化。
2.实验原理
1)线性扩展
灰度级变换函数 s  T r ( ) 可为
( , )
[ ] ( , )
( , )
d f x y b
d c
s r a c a f x y b
b a
c f x y a

 
   
 
 

≤ ≤

(3.18)
灰度级变换函数如图 3.6 所示。
图 3.6 灰度级变换函数
2)非线性扩展
灰度级变换函数 s  T r ( ) 可为
s = c log(1 + r) (3.19)
3)灰度倒置
灰度级变换函数 s  T r ( ) 可为
s =255r (3.20)中国大学 MOOC《数字图像处理》 —武汉理工大学信息工程学院
4)二值化
确定一阈值 r1, 0<r1<255。 r>r1 的灰度值置白, r<r1 的灰度值置黑。
3.实验方法及程序
(1) 选择一幅图像 lena.jpg, 设置输入/输出变换的灰度级范围, a=0.3, b=0.6, c=0.1, d=0.9。
(2)设置非线性扩展函数的参数 c=2。
(3)采用灰度倒置变换函数 s=255r 进行图像变换。
(4)设置二值化图像的阈值,分别为 level=0.4, level=0.7 参考程序如下。
I=imread(‘i_lena.jpg’);
figure;
subplot(1,3,1);
imshow(I);
title(‘原图’);
J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围
subplot(1,3,2);
imshow(J);
title(‘线性扩展’);
I1=double(I); %将图像转换为 double 类型
I2=I1/255; %归一化此图像
C=2;
K=Clog(1+I2); %求图像的对数变换
subplot(1,3,3);
imshow(K);
title(‘非线性扩展’);
M=255-I; %将此图像取反
figure;
subplot(1,3,1);
imshow(M);
title(‘灰度倒置’);
N1=im2bw(I,0.4); %将此图像二值化,阈值为 0.4
N2=im2bw(I,0.7); %将此图像二值化,阈值为 0.7
subplot(1,3,2);
imshow(N1);
title(‘二值化阈值 0.4’);
subplot(1,3,3);
imshow(N2);
title(‘二值化阈值 0.7’);
4.实验结果与分析
实验结果如图 3.7 所示。中国大学 MOOC《数字图像处理》 —武汉理工大学信息工程学院
(a)原图 (b)线性扩展 (c)非线性扩展
(d)灰度倒置 (e)二值化阈值为 0.4 (f)二值化阈值为 0.7
图 3.7 实验 3.3.1 的结果图
结果分析如下。
( 1)线性扩展可以将一幅图像的某一灰度级范围线性扩展到另一灰度级范围;如果
dc>ba,则输出图像的对比度增大。
(2)对数非线性扩展将使图像的低灰度级扩展,高灰度级压缩,即图像加亮、减暗。
(3)灰度倒置变换将图像中白的变成黑的,黑的变成白的,其他的灰度级也发生相应的
变化;
(4)二值化变换将图像变成黑白图像,阈值不同得到的结果将不同,低于阈值的灰度将
变为 0,高于阈值的灰度变为 1。
5.思考题
线性扩展与对数非线性扩展各有什么特点?对数非线性变换能否使图像的低灰度级压
缩,高灰度级扩展或者低灰度级扩展,高灰度级压缩?选择不同的阈值,观察阈值对图像二
值化的影响。
3.3.2 图像的代数运算
1.实验内容
选择两幅图像,一幅是物体图像,一幅是背景图像,采用正确的图像代数运算方法,分
别实现图像叠加、混合图像的分离和图像的局部显示效果。
2.实验原理
代数运算是指对两幅或两幅以上输入图像进行点对点的加、减、乘、除运算而得到目标
图像的运算。图像处理代数运算的 4 种基本形式分别如下。
C x y A x y B x y ( , ) ( , ) ( , )   (3.21)
C x y A x y B x y ( , ) ( , ) ( , )   (3.22)中国大学 MOOC《数字图像处理》 —武汉理工大学信息工程学院
C x y A x y B x y ( , ) ( , ) ( , )   (3.23)
C x y A x y B x y ( , ) ( , ) ( , )   (3.24)
式中, A( , ) x y 和 B x y ( , )为输入图像表达式; C x y ( , ) 为输出图像表达式。
3.实验方法及程序
(1)选取两幅大小一样的灰度图像 i_lena.jpg 和 rice.png,将两幅图像进行加法运算。程
序如下,结果如图 3.8(a)所示。
I=imread(‘i_lena.jpg’);
I=rgb2gray(I);
J=imread(‘rice.png’);
I=im2double(I); %将图像转换为 double 型
J=im2double(J);
K=I+0.3
J; %两幅图像相加
subplot(1,3,1);
imshow(I);
title(‘人物图’);
subplot(1,3,2);
imshow(J);
title(‘背景图’);
subplot(1,3,3);
imshow(K);
title(‘相加后的图’);
imwrite(K,‘i_lena1.jpg’);
(2)选取一幅混合图像,如图 3.8(a)相加得到的图像 i_lena.jpg,将混合图像与背景图
像做减法运算,程序如下,结果如图 3.8(b)所示。
A=imread(‘i_lena1.jpg’);
B=imread(‘rice.png’);
C=A-0.3*B; %混合图减去背景图
subplot(1,3,1);
imshow(A);
title(‘混合图’);
subplot(1,3,2);
imshow(B);
title(‘背景图’);
subplot(1,3,3);
imshow©;
title(‘分离后的图’);
(3)选取一幅尺寸为 256×256 像素的灰度图,如 i_lena.jpg。设置掩模模板,对于需要保
留下来的区域,掩模图像的值置为 1,而在需要被抑制掉的区域,掩模图像的值置为 0。程
序如下,结果如图 3.8(c)所示。中国大学 MOOC《数字图像处理》 —武汉理工大学信息工程学院
A=imread(‘i_lena.jpg’);
A=rgb2gray(A);
A=im2double(A);
subplot(1,2,1);
imshow(A);
title(‘原图’);
B=zeros(256,256); %设置模板
B(40:200,40:200)=1;
K=A.*B; %两幅图像相乘
subplot(1,2,2);
imshow(K);
title(‘局部图’);
4. 实验结果与分析
实验结果如图 3.8 所示。
(a)图像的叠加
(b)混合图像的分离
(c)图像的局部效果图
图 3.8 实验 3.3.2 的结果图
由所得结果可知,两幅图像进行相加运算可以实现图像的叠加,而通过减法运算可以实
现混合图像的分离。 乘法运算可以用来获取对图像感兴趣的部分, 对于需要保留下来的区域,中国大学 MOOC《数字图像处理》 —武汉理工大学信息工程学院
掩模图像的值置为 1,而在需要被抑制掉的区域,掩模图像的值置为 0。
5.思考题
任意两幅图片相叠加得到一幅混合图像,将此混合图像减去其中的一幅原图像能得到另
一幅原图像吗?通过以上实验小结各种图像代数运算的应用特点。
3.3.3 图像的缩放
1.实验内容
对一幅图像实现按比例缩小和不按比例任意缩小的效果,以及图像的成倍放大和不按比
例放大效果。
2.实验原理
数字图像的比例缩放是指将给定的图像在 x 方向和 y 方向按相同的比例 a 缩放,从而获
得一幅新的图像,又称为全比例缩放。如果 x 方向和 y 方向缩放的比例不同,则图像的比例
缩放会改变原始图像像素间的相对位置,产生几何畸变。设原始图像中的点 A0 0 0 ( , ) x y 比例缩
放后,在新图中的对应点为 A1 1 1 ( , ) x y ,则 A0 0 0 ( , ) x y 和 A1 1 1 ( , ) x y 之间的坐标关系可表示如下。
1 0
1 0
0 0
0 0
1 0 0 1 1
x a x
y a y
    
    
     
    
    
(3.25)
即 1 0
1 0
x ax
y ay
 

 
(3.26)
3.实验方法及程序
选取一幅大小为 256×256 像素的图像,如 i_lena.jpg.分别将图比例放大 1.5 倍,比例缩小
0.7 倍,非比例放大到 420×384 像素,非比例缩小到 150×180 像素。程序如下,结果如图 3.9
所示。
A=imread(‘i_lena.jpg’);
B1=imresize(A,1.5); %比例放大 1.5 倍,默认采用的是最近邻法进行线
性插值
B2=imresize(A,[420 384]); %非比例放大到 420︰ 384
C1=imresize(A,0.7); %比例缩小 0.7 倍
C2=imresize(A,[150 180]); %非比例缩小到 150︰ 180
figure;
imshow(B1);
title(‘比例放大图’);
figure;
imshow(B2);
title(‘非比例放大图’);
figure;
imshow(C1);
title(‘比例缩小图’);中国大学 MOOC《数字图像处理》 —武汉理工大学信息工程学院
figure;
imshow(C2);
title(‘非比例缩小图’);
4.实验结果与分析
实验结果如图 3.9 所示。
(a)比例放大图 (b)非比例放大图
(c)比例缩小图 (d)非比例缩小图
图 3.9 实验 3.3.3 的结果图
由所得结果可以看出,按非比例缩小或放大的图像相对原图像有畸变,而按比例缩放的
图像没有。由于 x 方向和 y 方向缩放的比例不同,则图像的非比例缩放会改变原始图像像素
间的相对位置,产生几何畸变。
5.思考题
由非比例缩放得到的图片能够恢复到原图片吗?为什么?
3.3.4 图像的旋转
1.实验内容
将一幅图像分别旋转 45°和 90°,与原图像对比,观察它们的区别。
2.实验原理中国大学 MOOC《数字图像处理》 —武汉理工大学信息工程学院
设原始图像的任意点 A0 0 0 ( , ) x y 经旋转角度  以后到新的位置 A( ) x y , 。图像的旋转变换
可以用矩阵形式表示如下。
0 0
cos sin 0
sin cos 0
1 0 0 1 1
x x
y y
 
 
    
    
      
    
    
图像旋转之后也可以根据新点求解原始新点的坐标,其矩阵表示形式如下。
0 0
cos sin 0
sin cos 0
1 0 0 1 1
x x
y y
 
 
      
    
     
    
    
3.实验方法及程序
读取一幅图片,如 i_lena.jpg,设置图像旋转的角度分别为 45°和 90°,采用图形旋转
函数 imrotate 对图像进行旋转。程序如下,结果如图 3.10 所示。
I=imread(‘i_lena.jpg’);
J=imrotate(I,45); %图像进行逆时针旋转,默认采用最近邻插值
法进行插值处理
K=imrotate(I,90); %默认旋转出界的部分不被截出
subplot(1,3,1);
imshow(I);
subplot(1,3,2);
imshow(J);
subplot(1,3,3);
imshow(K);
4.实验结果与分析
实验结果如图 3.10 所示。
(a)原图 (b)旋转 45° 图 (c)旋转 90° 图
图 3.10 实验 3.3.4 的结果图
由所得结果可以看出,图像进行逆时针旋转,旋转出界的部分没有被截出。旋转 45°的
结果图相比原图要模糊一点,而旋转 90°的结果图没有发生变化。因为原来的图像坐标点位
于整数点,而旋转 45°的图像经上述变换公式变换后,其像素坐标点不在整数坐标位置上,
所以会产生一定程度的失真。
5.思考题
图像的旋转会导致图像的失真吗?若有,有什么办法可以解决这个问题?

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值