加深 | Matlab图像实验操作基础(矩阵,九宫格、噪声处理)

Matlab图像学校实验操作基础——矩阵、九宫格、噪声处理

                               实验(一)
  • 【实验目的】:
    • 一、运用Matlab对矩阵进行运算
    • 二、运算Matlab对图像的基本处理
    • 三、熟悉Matlab基本编程

【内容】

一、矩阵运算
矩阵的定义、矩阵的点乘、矩阵乘法和矩阵点运算
A=[4 3 -1 4; 3 7 1 -5; -1 1 2 9]
B=[0 1 2 4; -1 0 3 5; -2 -3 0 6; -9 6 5 7]
C=[0 3 -1 4; -3 0 1 -5; 1 -1 0 9]
A减C: A - C
A乘以B: A * B
B的逆矩阵 inv(B)
A点乘 C: A .* C, A.^2
A 的点平方: A.^ 2

二、图像的基本处理

. 【分割】提取Lena图像的左半上角部分,与原始Lena 图像在figure中显示,并做适当的命名,。

a              =imread('Lena.bmp');
[M, N, C]  =  size(a);
b              =a(1:floor(M/2), 1: floor(N/2), : );
c               = a(1:floor(M/4), 1:floor(N/4), :);
figure:
subplot(1,3,1);
imshow(a);title( ' Oringal imagre' )
subplot(1,3,2);
imshow(b); title( 'Top-left 1/2 quarter' )
subplot(1,3,3);
imshow(c);title( 'Top-left 1/4 quarter' )


外延:九宫格切割。

a           =imread( 'Lena.bmp ' );
a_m      = imresize(a,1.8,'bilinear');  %先放大1.8倍
[M, N, C]= size(a_m);
figure;
imshow(a_m);
axis on;
m         =floor(M/3);
temp1   = floor(M/3);  %x轴参数
temp2   = floor(N/3);  %y轴参数
if(temp1 > temp2)
     temp1= temp2;
     temp2= temp1;
else 
     temp2= temp1;
end
subplot(3,3,1);
imshow(a_m( 1: temp2, 1: temp1))
subplot(3,3,2);
imshow(a_m(1:  temp2,temp1: temp1*2))
subplot(3,3,3);
imshow(a_m(1: temp2,temp1*2: temp1*3))
subplot(3,3,4);
imshow(a_m( temp2:temp2*2, 1:temp1 ))
subplot(3,3,5,);
imshow(a_m( temp2:temp2*2,temp1:temp1*2 ))
subplot(3,3,6,);
imshow(a_m(temp2: temp2*2,temp1*2:temp1*3))
subplot(3,3,7);
imshow(a_m(temp2*2: temp2*3,1: temp1))
subplot(3,3,8);
imshow(a_m(temp2*2: temp2*3, temp1:temp1*2))
subplot(3,3,9);
imshow(a_m( temp2*2:temp2*3, temp1*2:temp1*3 ))

三、图像去噪,图像加法
利用imnoise ,对原始Lema图像叠加高斯噪声,产生至少4幅以上的含噪声图像。对这些含噪声图像采用 相加 运算,来验证是否可以抑制噪声。将原始图像、所有噪声图像、相加结果图像显示在一个figure中。
代码:

img  = imread('Lena.bmp');
nos1 = imnoise(img,'gaussian',0,0.05);
nos2  =imnoise(img, 'gussian',0,0.06);
nos3  =imnoise(img, 'gussian', 0, 0.03);
nos4  =imnoise(img,'gussian',0,0.04);
temp  = uint16(nos1)+uint16(nos2)+uint16(nos3)+uint16(nos4);
img2  =uint8((tmp/4));
figure;
subplot(231);imshow(img);title('原图')
subplot(232);imshow(nos1);title('方差0.05的高斯')
subplot(233);imshow(nos2);title('方差0.06的高斯')
subplot(234);imshow(nos3);title('方差0.03的高斯')
subplot(235);imshow(nos4);title('方差0.04的高斯')
subplot(236);imshow(img2,[]);title('矩阵相加,图像加法去噪')

&

&&&&&&&参考百度:
图像噪声函数 imnoise();
类型有:a= imread(‘Lena.bmp’)

  1. b=imnoise(a,‘gassian’,m,s); 其中:a是图像对象;gassian为高斯噪声,m是均值,s为方差。
  2. b=imnoise(a,‘localvar’,V); 其中:V是局部方差,理想方差值,而且与a是大小相等的矩阵。
  3. b=imnoise(a, ‘localvar’, image_intensity,var); 将均值为0的高斯噪声加到图像a中,其中噪声的局部方差var是图像a的亮度值的函数。参值image_intensity和var是大小相同的向量。后面在plot(image_intensity, var)将绘制出噪声方差与图像亮度值函数的关系。
  4. b=imnoise(a,‘salt&pepper’ , d); 椒盐噪声处理图像。其中:d是噪声密度(是包含噪声值的图像区域的百分比),默认d=0.05;
  5. b=imnoise(a,‘speckle’, n,var);乘法噪声处理图像。其中:n是均值(默认=0),var是方差(默认=0.04)的均匀分布的随机噪声。
  6. b=imnoise(a,‘poisson’); 泊松噪声处理图像。

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值