Matlab简单图像运算实例

一、实验目的

1、了解图像运算的意义和手段;
2、熟练掌握图像的代数运算和几何运算方法;
3、掌握图像各类噪声的添加及消除噪声的方法;
4、比较经过各个运算后图像之间的变化;

二、实验任务

实验要求设计一个程序完成下列要求:
1、读入两幅图像,完成基本代数运算,并显示各次运算的结果图像;
2、给某幅图像加入椒盐噪声后并与前一张图显示在同一图像对话框中;
3、运用for循环,将100幅加有噪声的图像进行相加并求其平均值,显示求平均后图像。
4、将图像分别放大1.5倍和缩小0.8倍,插值方法使用双线性插值法。将图像顺时针旋转45度,显示旋转后的图像。
5、设计实验步骤,完成实验报告。

三、实验内容

Matlab源程序如下:

clear
clc
I1=imread('rice.png');
I2=imread('testpat1.png');
I1=im2double(I1);
I2=im2double(I2);
Add=imadd(I1,I2);         %图像加运算
Sub=imsubtract(I1,I2);    %图像减运算
Mul=immultiply(I1,I2);    %图像乘运算
Div=imdivide(I1,I2);      %图像除运算
Abs=imabsdiff(I1,I2);     %图像差的绝对值运算
Com=imcomplement(I1);     %图像补运算
figure(1);
subplot(2,4,1);imshow(I1);title('原图1');
subplot(2,4,2);imshow(I2);title('原图2');
subplot(2,4,3);imshow(Add,[]);title('图像加运算');
subplot(2,4,4);imshow(Sub,[]);title('图像减运算');
subplot(2,4,5);imshow(Mul,[]);title('图像乘运算');
subplot(2,4,6);imshow(Div,[]);title('图像除运算');
subplot(2,4,7);imshow(Abs,[]);title('图像差的绝对值运算');
subplot(2,4,8);imshow(Com,[]);title('图像1的补运算');
Noi=imnoise(I1,'salt & pepper');
figure(2);
subplot(1,3,1);imshow(I1);title('原图1');
subplot(1,3,2);imshow(Noi);title('加入椒盐噪声后的图1');
N1=zeros(256,256);
for i=1:100    %将图像加噪声再通过多次相加求平均的方法祛除噪声
    Noi1=imnoise(I1,'salt & pepper');
    N2=im2double(Noi1);
    N1=N1+N2;
end
N3=N1/100;
subplot(1,3,3);imshow(N3);title('相加求平均的图像');
M1=imresize(I2,1.5,'bilinear');
M2=imresize(I2,0.8,'bilinear');
M11=imrotate(M1,-45,'bilinear');
M22=imrotate(M2,-45,'bilinear');
figure(3);
subplot(1,3,1);imshow(I2);title('原图');
subplot(1,3,2);imshow(M11);title('放大1.5倍并顺时针旋转45°');
subplot(1,3,3);imshow(M22);title('缩小0.8倍并顺时针旋转45°');

四、实验结果

在Figure1中显示了8幅图像,其中第一行从左至右依次是:原图1、原图2、两图像加运算后的图像、两图像减运算后的图像;第二行从左至右依次是:两图像乘运算后的图像、两图像除运算后的图像、两图像的差的绝对值图像、原图1的补运算图像。
在Figure2中显示了3幅图像,从左至右依次是:原图像、在原图像上加入椒盐噪声后的图像、将100幅加有噪声的图像进行相加并求其平均值。
在Figure3中显示了3幅图像,从左至右依次是:原图像、放大1.5倍并顺时针旋转45°、缩小0.8倍并顺时针旋转45°。
在这里插入图片描述
图1 程序运行结果图像1
在这里插入图片描述
图2 程序运行结果图像2

在这里插入图片描述
图3 程序运行结果图像3

五、实验过程的思考

1、关于图像代数运算:
图像的代数运算实质上是图像像素间的操作,所以就要求两幅图像类型和尺寸一致,在选择图像时不能只看其大小,有时可能会遇到二值图像。此时也可使用im2double函数将两幅图像类型化为一致。
2、关于将图像加噪声再通过多次相加求平均的方法消除噪声:
在程序中使用了for循环100次给图像加入椒盐噪声,然后用求平均的方法消除了噪声。如果把添加噪声的函数放在循环之外则不会产生这样的效果,此时相当于对同一数组的数据相加100次再求平均,数组数据并不会发生变化。同时要注意加入噪声后要使用im2double将图像矩阵化为double型,因为普通代数运算要求的是双精度型。

更多函数信息可参考matlab官网 MATLAB-函数

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值