数图各实验代码Word文件下载.docx

上传人:b****5 文档编号:21371177 上传时间:2023-01-30 格式:DOCX 页数:11 大小:27.48KB
下载 相关 举报
数图各实验代码Word文件下载.docx_第1页
第1页 / 共11页
数图各实验代码Word文件下载.docx_第2页
第2页 / 共11页
数图各实验代码Word文件下载.docx_第3页
第3页 / 共11页
数图各实验代码Word文件下载.docx_第4页
第4页 / 共11页
数图各实验代码Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数图各实验代码Word文件下载.docx

《数图各实验代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《数图各实验代码Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

数图各实验代码Word文件下载.docx

5.给灰度图像加入高斯噪声,并显示。

运用for循环,分别将5幅、50幅和500幅加有随机高斯噪声的图像进行相加并求其平均值。

将几种求平均后的图像显示在同一图像对话框中,比较其结果。

[I,M]=imread('

eight.tif'

J=imnoise(I,'

gaussian'

0,0.02);

subplot(1,2,1),imshow(I,M),title('

subplot(1,2,2),imshow(J,M),title('

加噪声后图像'

[m,n]=size(I);

K=zeros(m,n);

fori=1:

100

J=imnoise(I,'

J1=im2double(J);

K=K+J1;

end

K=K/100;

%求图像的平均

figure;

imshow(K),title('

相加求平均后的图像'

6.自行下载两幅的图像,进行相加、相减、相乘的代数运算(注意运算时候图像的尺寸、类型等,如果不同,应将尺寸较大的图像裁剪或缩放),显示运算之前和运算之后的图像。

四种图像处理代数运算的数学表达式如下:

其中A(x,y)和B(x,y)为输入图像,而C(x,y)为输出图像。

7.选择一幅索引图像,将图像文件读出,并将这个图像显示出来。

尝试修改MAP颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。

(选做)

[X,MAP]=imread('

flowers.tif'

tif'

MAP1=MAP+MAP;

subimage(X,MAP1);

 

实验二图像的灰度变换与空域滤波

1.显示图像A及其灰度直方图。

用imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别;

改变灰度值调整范围,观察调整后的图像的变化及其与原图像的差别,调整后的灰度直方图的变化及其与原灰度直方图的区别;

进一步利用改变灰度值调整范围,实现图像的反转。

X=imread('

A.tif'

Y=imadjust(X,[0.20.8],[]);

Z=imadjust(X,[],[1,0]);

subplot(3,2,1),imshow(X),title('

图像A'

subplot(3,2,2),imhist(X),title('

原图像的灰度直方图'

subplot(3,2,3),imshow(Y),title('

调整后的图像A'

subplot(3,2,4),imhist(Y),title('

调整后的灰度直方图'

subplot(3,2,5),imshow(Z),title('

反转后的图像A'

subplot(3,2,6),imhist(Z),title('

反转后的灰度直方图'

2.读取灰度图像B,用histeq函数将原始图像的灰度直方图均衡化,同时观察均衡化后的图像与前面图像的差别,均衡化后的灰度直方图与前面的灰度直方图的区别。

I=imread('

B.tif'

J=histeq(I);

subplot(2,2,1),imshow(I),title('

图像B'

subplot(2,2,2),imhist(I,64),title('

图像B的直方图'

subplot(2,2,3),imshow(J),title('

均衡化的图像B'

subplot(2,2,4),imhist(J,64),title('

均衡化图像B的直方图'

3.给图像C加入高斯噪声,分别采用不同大小的模板对加有噪声的图像进行均值滤波,用一个图像处理对话框(subplot)显示原图像、加有噪声的图像及均值滤波的图像。

比较结果。

C.tif'

Y=imnoise(X,'

0,0.005);

Z1=filter2(fspecial('

average'

3),Y)/255;

Z2=filter2(fspecial('

5),Y)/255;

Z3=filter2(fspecial('

7),Y)/255;

Z4=filter2(fspecial('

9),Y)/255;

subplot(2,3,1),imshow(X),title('

图像C'

subplot(2,3,2),imshow(Y),title('

加入高斯噪声的图像C'

subplot(2,3,3),imshow(Z1),title('

均值滤波模版尺寸为3'

subplot(2,3,4),imshow(Z2),title('

均值滤波模版尺寸为5'

subplot(2,3,5),imshow(Z3),title('

均值滤波模版尺寸为7'

subplot(2,3,6),imshow(Z4),title('

均值滤波模版尺寸为9'

4.分别采用不同大小的模板对上述加有噪声的图像进行中值滤波,用一个图像处理对话框(subplot)显示原图像、加有噪声的图像及中值滤波的图像。

I1=medfilt2(Y,[3,3]);

I2=medfilt2(Y,[7,7]);

subplot(2,2,1),imshow(X),title('

subplot(2,2,2),imshow(Y),title('

subplot(2,2,3),imshow(I1),title('

3模版'

subplot(2,2,4),imshow(I2),title('

7模版'

实验三图像的频域处理

1.读取图像A(lena.tiff)和B(rice.tif),显示这两幅图像,对图像作傅立叶变换,显示图像的傅里叶幅度谱和相位谱。

做傅立叶逆变换,显示重建图像,看是否与原图像相同。

A=imread('

lena.tiff'

B=imread('

rice.tif'

I=fftshift(fft2(A));

J=fftshift(fft2(B));

subplot(2,3,1),imshow(A);

subplot(2,3,2),imshow(log(1+abs(I)),[]);

subplot(2,3,3),imshow(angle(I));

subplot(2,3,4),imshow(B);

subplot(2,3,5),imshow(log(1+abs(J)),[]);

subplot(2,3,6),imshow(angle(J));

X=ifft2(I);

Y=ifft2(J);

subplot(2,3,1),imshow(A),title('

subplot(2,3,2),imshow(log(1+abs(I)),[]),title('

二维傅里叶变换'

subplot(2,3,3),imshow(log(abs(X)),[]),title('

逆变换后图像'

subplot(2,3,4),imshow(B),title('

subplot(2,3,5),imshow(log(1+abs(J)),[]),title('

subplot(2,3,6),imshow(log(abs(Y)),[]),title('

2.设计一个简单的巴特沃斯低通滤波器(截止频率自选),对图像A作频域低通滤波,再作反变换,观察两种不同的截止频率下反变换后的图像与原图像的区别。

A=imread('

PQ=paddedsize(size(A));

D0=0.01*PQ

(1);

H=lpfilter('

btw'

PQ

(1),PQ

(2),D0);

g=dftfilt(A,H);

subplot(1,2,1),imshow(A),title('

subplot(1,2,2),imshow(g,[]),title('

D0较小的滤波'

D0=0.08*PQ

(1);

D0较大的滤波'

3.(选做内容)设计一个高斯高通滤波器(截止频率自选),对图像B作高频增强滤波,再作反变换,观察两种不同的截止频率下反变换后的图像与原图像的区别。

B=imread('

PQ=paddedsize(size(B));

D0=0.01*PQ

(1);

HBW=hpfilter('

PQ

(1),PQ

(2),D0,2);

H=0.5+2*HBW;

g=dftfilt(B,H);

subplot(1,2,1),imshow(B),title('

D0=0.1*PQ

(1);

实验四图像复原

利用imnoise3对图像I进行加入参数为C=[032;

064;

1616;

320;

640;

-1616]的周期噪声,得到图像J。

对含噪图像J进行陷波滤波图像复原。

要求列出各个步骤的运行代码。

显示I,J,差分图像I-I'

显示I、J、以及噪声的频谱。

img=im2double(imread('

peppers.tiff'

));

C=[032;

-1616];

A=[100020003000400050006000];

[r,R,S]=imnoise3(512,512,C,A);

img_noise=img+r;

F0=fft2(img);

F0=fftshift(F0);

F=fft2(img_noise);

F=fftshift(F);

sizec=size(img);

H=ones(sizec

(1),sizec

(2));

x0=sizec

(1)/2+1;

y0=sizec

(2)/2+1;

x=x0;

w=0.4*2*pi;

N=2*pi/w;

y=y0-round(sizec

(2)/N);

H(x,y-3:

y+3)=0;

H(x,(y0-y)+y0-3:

(y0-y)+y0+3)=0;

I=ifftshift(F.*H);

img1=ifft2(I);

subplot(4,2,1),imshow('

),title('

subplot(4,2,2),imshow(img),title('

原图转double类型'

subplot(4,2,3),imshow(S),title('

规定脉冲的谱'

subplot(4,2,4),imshow(r,[]),title('

空间域中相应的正弦噪声模式'

subplot(4,2,5),imshow(img_noise),title('

加噪图像'

subplot(4,2,6),imshow(log(1+abs(F0)),[]),title('

原图像频谱'

subplot(4,2,7),imshow(log(1+abs(F)),[]),title('

加噪图像频谱'

subplot(4,2,8),imshow(img1,[]),title('

陷波滤波结果'

实验五图像变化与编码

1.已知符号{x1,…x8}对应概率为0.4,0.18,0.1,0.1,0.07,0.06,0.05,0.04。

按教材图8.2的方式将其转换为霍夫曼码(编码过程写在实验报告中),并利用huffman.m转换为霍夫曼码,对照结果是否相同。

p=[0.40.180.10.10.070.060.050.04];

c=huffman(p)

结果如下:

c=

'

1'

010'

0111'

000'

0011'

0010'

01101'

01100'

2.对给定图像I利用mat2huff.m,huff2mat.m进行霍夫曼编码、解码。

计算压缩率CR。

>

I=imread('

Tracy.tif'

J=mat2huff(I);

cr1=imratio(I,J)

cr1=

1.2191

save('

tracy.mat'

J'

cr2=imratio('

cr2=

1.2386

loadtracy.mat

K=huff2mat(J);

L=imread('

rmse=compare(K,L)

rmse=

0

3.对给定图像I先进行预测编码、霍夫曼编码,然后进行霍夫曼解码、预测解码。

计算压缩率CR。

显示预测误差图像x-xˆ。

预测器采用xˆ=(A+B+C)/3,如下图所示:

A

C

B

x

比较该预测器与mat2lpc所指定的预测器性能差异(CR与执行速度)。

(提示:

可参考mat2lpc.m,lpc2mat.m,或采用循环方式设计预测器,执行速度可用tic,toc)。

x=imread('

tic

e1=mat2lpc(x);

toc

Elapsedtimeis20.392000seconds.

e2=mymat2lpc(x);

Elapsedtimeis17.553000seconds.

imshow(e1,[]);

imshow(e2,[]);

EN=[entropy(x),entropy(e1),entropy(e2)]

EN=

6.51473.97413.8448

y1=mat2huff(e1);

y2=mat2huff(e2);

z1=huff2mat(y1);

z2=huff2mat(y2);

x1=lpc2mat(z1);

x2=mylpc2mat(z2);

ComRatio=[imratio(x,y1),imratio(x,y2)]

ComRatio=

1.99522.0646

compare(x,x1)

ans=

compare(x,x2)

实验六综合实验

1、对给定的一幅彩色图像F进行图像增强,结果保存为BMP图像G。

win=[5,5];

img=imread('

F.tiff'

x=img(:

1);

y=img(:

2);

z=img(:

3);

X=medfilt2(x,win);

Y=medfilt2(y,win);

Z=medfilt2(z,win);

G=cat(3,X,Y,Z);

imwrite(G,'

G.bmp'

bmp'

subplot(1,2,1),imshow(img),title('

subplot(1,2,2),imshow(G),title('

原图像用中值滤波去除椒盐噪声'

2、将图像G以JPEG格式进行压缩,质量因子设为70,结果保存为JPG图像J。

imwrite(A,'

J.jpg'

quality'

70);

imshow('

),title('

图像G以JPEG格式压缩'

3、

(1)计算J相对于G的均方根误差RMSE。

B=imread('

rmse=compare(A,B)

5.5879

(2)计算J相对于G的压缩率CR。

cr=imratio(A,B)

cr=

1

4.提取图像G的边缘(幅值),结果保存为K。

K=imread('

K1=im2double(K);

K2=rgb2gray(K1);

[thr,sorh,keepapp]=ddencmp('

den'

wv'

K2);

K3=wdencmp('

gbl'

K2,'

sym4'

2,thr,sorh,keepapp);

%小波滤除

K4=medfilt2(K3,[99]);

%中值滤波

K5=imresize(K4,0.2,'

bicubic'

%图像大小

BW1=edge(K5,'

sobel'

BW2=edge(K5,'

roberts'

BW3=edge(K5,'

prewitt'

BW4=edge(K5,'

log'

BW5=edge(K5,'

canny'

h=fspecial('

5);

%高斯滤波

BW6=edge(K5,'

zerocross'

[],h);

subplot(2,3,1),imshow(BW1),title('

Sobel算子'

subplot(2,3,2),imshow(BW2),title('

Roberts算子'

subplot(2,3,3),imshow(BW3),title('

Prewitt算子'

subplot(2,3,4),imshow(BW4),title('

Log算子'

subplot(2,3,5),imshow(BW5),title('

Canny算子'

subplot(2,3,6),imshow(BW6),title('

零交叉算子'

[VG,A,PPG]=colorgrad(G);

figure,imshow(VG);

imwrite(VG,'

K.tiff'

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

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1