MATLAB实验三.docx

上传人:b****4 文档编号:4875420 上传时间:2023-05-07 格式:DOCX 页数:10 大小:1.05MB
下载 相关 举报
MATLAB实验三.docx_第1页
第1页 / 共10页
MATLAB实验三.docx_第2页
第2页 / 共10页
MATLAB实验三.docx_第3页
第3页 / 共10页
MATLAB实验三.docx_第4页
第4页 / 共10页
MATLAB实验三.docx_第5页
第5页 / 共10页
MATLAB实验三.docx_第6页
第6页 / 共10页
MATLAB实验三.docx_第7页
第7页 / 共10页
MATLAB实验三.docx_第8页
第8页 / 共10页
MATLAB实验三.docx_第9页
第9页 / 共10页
MATLAB实验三.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MATLAB实验三.docx

《MATLAB实验三.docx》由会员分享,可在线阅读,更多相关《MATLAB实验三.docx(10页珍藏版)》请在冰点文库上搜索。

MATLAB实验三.docx

MATLAB实验三

Matlab实验三

1、使用非线性灰度变换函数对一幅彩色图像进行点运算,并与使用线性灰度变换函数进行点运算的结果进行比较。

解答:

原图片读入之后数据类型为unit8,并不能进行非线性的

变换,先转换成为double类型数据进行非线性变换。

可见非线性变换是原图的颜色发生了变化,而线性变换只是把原图的亮度变化了而已。

MATLAB代码:

%test1

clc;closeall;clearall;

im=imread('alies.jpg');

im_double=im2double(im);

im1=1-im_double.^2;

im2=4+0.64*im;

figure();

subplot(131);

imshow(im);title('原图');

subplot(132);

imshow(im1);title('非线性变换');

subplot(133);

imshow(im2);title('线性变换');

 

2、对一幅图像进行DCT变换,分别保留最大的总变换系数个数的1/4、1/8和1/16个变换系数,进行反DCT得到重构图像,显示原图像和重构图像并计算重构图像的峰值信噪比。

解答:

为了避免直接截取DCT系数造成的图像大小变化,采取对截取掉的部分填充0的方法进行DCT系数截取。

原图和重构图像如下:

计算得出峰值信噪比分别为:

65.5464,64.1656,63.1766。

MATLAB代码:

[test2.m]

%test2

clc;closeall;clearall;

im=imread('alies.jpg');

im=im2double(im);

im_size=size(im);

lenx=im_size

(1);

leny=im_size

(2);

im_dct(:

:

1)=dct2(im(:

:

1));

im_dct(:

:

2)=dct2(im(:

:

2));

im_dct(:

:

3)=dct2(im(:

:

3));

im_dct_4=zeros(im_size);im_dct_8=zeros(im_size);im_dct_16=zeros(im_size);

im_dct_4(1:

floor(lenx/4),1:

floor(leny/4),:

)=im_dct(1:

floor(lenx/4),1:

floor(leny/4),:

);

im_dct_8(1:

floor(lenx/8),1:

floor(leny/8),:

)=im_dct(1:

floor(lenx/8),1:

floor(leny/8),:

);

im_dct_16(1:

floor(lenx/16),1:

floor(leny/16),:

)=im_dct(1:

floor(lenx/16),1:

floor(leny/16),:

);

im_4(:

:

1)=idct2(im_dct_4(:

:

1));

im_4(:

:

2)=idct2(im_dct_4(:

:

2));

im_4(:

:

3)=idct2(im_dct_4(:

:

3));

im_8(:

:

1)=idct2(im_dct_8(:

:

1));

im_8(:

:

2)=idct2(im_dct_8(:

:

2));

im_8(:

:

3)=idct2(im_dct_8(:

:

3));

im_16(:

:

1)=idct2(im_dct_16(:

:

1));

im_16(:

:

2)=idct2(im_dct_16(:

:

2));

im_16(:

:

3)=idct2(im_dct_16(:

:

3));

figure();

subplot(232);

imshow(im);title('原图');

subplot(234);

imshow(im_4);title('1/4DCT')

subplot(235);

imshow(im_8);title('1/8DCT');

subplot(236);

imshow(im_16);title('1/16DCT');

pnsr_4=pnsr(im_4,im)

pnsr_8=pnsr(im_8,im)

pnsr_16=pnsr(im_16,im)

[pnsr.m]

functionpnsr=pnsr(I,P)

%计算原始图像I和处理后图像P之间的峰值信噪比

ifsize(I)~=size(P)

error('图像大小必须相同');

elseiflength(size(I))==3

%彩色图像

sizep=size(I);

mse=0;lenx=sizep

(1);leny=sizep

(2);

forz=1:

3

forx=1:

lenx

fory=1:

leny

mse=mse+abs(I(x,y,z)^2-P(x,y,z)^2);

end

end

mse=mse/(lenx*leny);

end

mse=mse/3;

mse=double(mse);

pnsr=10*log10(255^2/mse);

elseiflength(size(I))==2

%灰度图像

sizep=size(I);

mse=0;lenx=sizep

(1);leny=sizep

(2);

forx=1:

lenx

fory=1:

leny

mse=mse+abs(I(x,y,z)^2-P(x,y,z)^2);

end

end

mse=mse/(lenx*leny);

mse=double(mse);

pnsr=10*log10(255^2/mse);

end

end

3、对一幅分别添加了椒盐噪声和高斯白噪声的图象进行均值和中值滤波(取三种不同大小的模板),并分析实验结果。

解答:

如下图所示,对原图加入椒盐噪声,分别使用2x2,4x4,8x8的模板对图像进行滤波。

可见中值滤波对椒盐噪声的滤波效果非常明显,2x2的模板率出了大部分噪声,还有小部分剩余,4x4基本率出了全部噪声,而8x8模板在滤除噪声的同时对原图像造成了不小的影响,是图像边缘模糊。

但是均值滤波的效果就不是很明显了,无论是2x2,4x4还是8x8滤波后都能看到明显的噪声。

如下图所示,对原始图像加入高斯噪声,然后分别使用2x2,4x4,8x8的模板对图像进行均值滤波。

可见,使用中值滤波对图像的噪声并不能很好的过滤,但也能够过滤掉一部分噪声,8x8的滤波效果最好,但是对原始图像产生了比较大的影响,背景的纹理基本不可见。

使用均值滤波对高斯噪声的滤波结果比较理想,使用4x4滤波后的图像基本看不到噪声的存在,使用8x8模板之后噪声已经非常小了,但是原图像却发生了很大的变化。

综上所述,对于不同的噪声类型不同的滤波方法产生的结果不同。

中值滤波对于椒盐噪声有很好的滤波效果,而均值滤波对搞死噪声有较好的滤波效果。

同时中值滤波和均值滤波在使用的模板过大的时候会对图形造成较大的影响,边缘模糊,细节纹理丢失等。

MATLAB代码:

[test3_salt.m]

%test3

clc;closeall;clearall;

im=imread('alies.jpg');im=im2double(im);

%加入椒盐噪声和高斯噪声

im_salt=imnoise(im,'salt&pepper',0.1);

%中值滤波(2x2,4x4,8x8)

forz=1:

3

%椒盐噪声

im_salt_mid_2x2(:

:

z)=medfilt2(im_salt(:

:

z),[2,2]);

im_salt_mid_4x4(:

:

z)=medfilt2(im_salt(:

:

z),[4,4]);

im_salt_mid_8x8(:

:

z)=medfilt2(im_salt(:

:

z),[8,8]);

end

%均值滤波(2x2,4x4,8x8)

mask1=ones(2,2)/4;

mask2=ones(4,4)/16;

mask3=ones(8,8)/64;

forz=1:

3

%椒盐噪声

im_salt_avg_2x2(:

:

z)=conv2(im_salt(:

:

z),mask1);

im_salt_avg_4x4(:

:

z)=conv2(im_salt(:

:

z),mask2);

im_salt_avg_8x8(:

:

z)=conv2(im_salt(:

:

z),mask3);

end

figure('name','椒盐噪声滤波');

subplot(331);

imshow(im);title('原图');

subplot(333);

imshow(im_salt);title('椒盐噪声');

subplot(334);

imshow(im_salt_mid_2x2);title('2x2中值滤波椒盐噪声');

subplot(335);

imshow(im_salt_mid_4x4);title('4x4中值滤波椒盐噪声');

subplot(336);

imshow(im_salt_mid_8x8);title('8x8中值滤波椒盐噪声');

subplot(337);

imshow(im_salt_avg_2x2);title('2x2均值滤波椒盐噪声');

subplot(338);

imshow(im_salt_avg_4x4);title('4x4均值滤波椒盐噪声');

subplot(339);

imshow(im_salt_avg_8x8);title('8x8均值滤波椒盐噪声');

[test3_gaus.m]

%test3

clc;closeall;clearall;

im=imread('alies.jpg');im=im2double(im);

%加入高斯噪声和高斯噪声

im_gaus=imnoise(im,'gaussian',0.1);

%中值滤波(2x2,4x4,8x8)

forz=1:

3

%高斯噪声

im_gaus_mid_2x2(:

:

z)=medfilt2(im_gaus(:

:

z),[2,2]);

im_gaus_mid_4x4(:

:

z)=medfilt2(im_gaus(:

:

z),[4,4]);

im_gaus_mid_8x8(:

:

z)=medfilt2(im_gaus(:

:

z),[8,8]);

end

%均值滤波(2x2,4x4,8x8)

mask1=ones(2,2)/4;

mask2=ones(4,4)/16;

mask3=ones(8,8)/64;

forz=1:

3

%高斯噪声

im_gaus_avg_2x2(:

:

z)=conv2(im_gaus(:

:

z),mask1);

im_gaus_avg_4x4(:

:

z)=conv2(im_gaus(:

:

z),mask2);

im_gaus_avg_8x8(:

:

z)=conv2(im_gaus(:

:

z),mask3);

end

figure('name','高斯噪声滤波');

subplot(331);

imshow(im);title('原图');

subplot(333);

imshow(im_gaus);title('高斯噪声');

subplot(334);

imshow(im_gaus_mid_2x2);title('2x2中值滤波高斯噪声');

subplot(335);

imshow(im_gaus_mid_4x4);title('4x4中值滤波高斯噪声');

subplot(336);

imshow(im_gaus_mid_8x8);title('8x8中值滤波高斯噪声');

subplot(337);

imshow(im_gaus_avg_2x2);title('2x2均值滤波高斯噪声');

subplot(338);

imshow(im_gaus_avg_4x4);title('4x4均值滤波高斯噪声');

subplot(339);

imshow(im_gaus_avg_8x8);title('8x8均值滤波高斯噪声');

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2