数图各实验代码

发布时间 : 星期三 文章数图各实验代码更新完毕开始阅读

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

B=imread('rice.tif'); PQ=paddedsize(size(B)); D0=0.01*PQ(1);

HBW=hpfilter('gaussian',PQ(1),PQ(2),D0,2); H=0.5+2*HBW; g=dftfilt(B,H);

subplot(1,2,1),imshow(B),title('原图像');

subplot(1,2,2),imshow(g,[]),title('D0较小的滤波');

B=imread('rice.tif'); PQ=paddedsize(size(B)); D0=0.1*PQ(1);

HBW=hpfilter('gaussian',PQ(1),PQ(2),D0,2); H=0.5+2*HBW; g=dftfilt(B,H);

subplot(1,2,1),imshow(B),title('原图像');

subplot(1,2,2),imshow(g,[]),title('D0较大的滤波');

实验四 图像复原

利用imnoise3对图像I进行加入参数为C=[0 32; 0 64; 16 16; 32 0; 64 0; -16 16]的周期噪声,得到图像J。对含噪图像J进行陷波滤波图像复原。要求列出各个步骤的运行代码。显示I,J,差分图像I-I'。显示I、J、以及噪声的频谱。

img = im2double(imread('peppers.tiff')); C=[0 32; 0 64; 16 16; 32 0; 64 0; -16 16]; A=[1000 2000 3000 4000 5000 6000]; [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('peppers.tiff'),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.4 0.18 0.1 0.1 0.07 0.06 0.05 0.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('Tracy.tif','tracy.mat') cr2 =

1.2386

>> load tracy.mat >> K = huff2mat(J); >> L = imread('Tracy.tif'); >> rmse = compare(K,L) rmse = 0

3.对给定图像I先进行预测编码、霍夫曼编码,然后进行霍夫曼解码、预测解码。计算压缩率 CR。显示预测误差图像x-x? 。预测器采用x?=(A+B+C)/3,如下图所示:

A B C x 比较该预测器与mat2lpc 所指定的预测器性能差异(CR 与 执行速度)。(提示:可参考mat2lpc.m, lpc2mat.m,或采用循环方式设计预测器,执行速度可用tic,toc)。 >> x = imread('Tracy.tif'); >> tic

>> e1 =mat2lpc(x); >> toc

Elapsed time is 20.392000 seconds.

>> tic

>> e2 = mymat2lpc(x); >> toc

Elapsed time is 17.553000 seconds. >> figure;imshow(e1,[]); >> figure;imshow(e2,[]);

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

6.5147 3.9741 3.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.9952 2.0646

>> compare(x,x1) ans = 0

>> compare(x,x2) ans = 0

联系合同范文客服:xxxxx#qq.com(#替换为@)