图形图像处理实验文档格式.docx
《图形图像处理实验文档格式.docx》由会员分享,可在线阅读,更多相关《图形图像处理实验文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
![图形图像处理实验文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/23/7c3d2b57-9bfe-489d-bd58-b2593c0f70c3/7c3d2b57-9bfe-489d-bd58-b2593c0f70c31.gif)
2.1用Matlab程序说明实际数字图像量化特点。
clc;
clear;
W=16;
kids.tif'
s=size(I);
J=I(s
(1)/2-W/2:
s
(1)/2+W/2-1,s
(2)/2-W/2:
s
(2)/2+W/2-1)
K=I(2*W:
s
(1)-W,2*W:
s
(2)-5*W);
figure,imshow(K);
实验三图像变换
1)了解图像正变换和逆变换的原理
2)理解图像变换的系数特点
3)掌握常用图像变换的实现过程
4)掌握图像的频谱分析方法
5)了解图像变换在图像数据压缩等方面的应用
1)二维离散傅立叶变换、余弦变换、小波变换的正逆变换公式。
2)Matlab中变换的实现函数。
3)讨论正交变换的应用。
3.1应用Matlab实现图像的傅立叶变换。
pout.tif'
F1=fft2(I);
figure,imshow(log(abs(F1)+1),[010]);
F2=fftshift(F1);
figure,imshow(log(abs(F2)+1),[010]);
原始图像图像的频谱图中心化的频谱图
3.2应用Matlab实现图像的DCT变换。
clearall;
clc
tire.tif'
subplot(121);
C1=dct2(I);
C2=fftshift(C1);
subplot(122);
imshow(log(abs(C2))+1,[010]);
原始图像DCT系数
3.3已知二维数字图像矩阵f,求此图像的二维DWT,并反求f。
f=[2552;
3333;
2551];
G=[1111;
11-1-1;
1-1-11;
1-11-1];
W=(1/16)*G*f*G
W=
3.18750.0625-0.81250.0625
0.0625-0.06250.0625-0.0625
0.18750.0625-0.81250.0625
0.0625-0.06250.0625-0.0625
3.4bior3.7是双正交样条小波对应的滤波器。
应用Matlab对wbarb.mat图像实现小波变换。
loadwbarb;
image(X);
colormap(map);
[cA1,cH1,cV1,cD1]=dwt2(X,'
bior3.7'
A1=upcoef2('
a'
cA1,'
1);
H1=upcoef2('
h'
cH1,'
V1=upcoef2('
v'
cV1,'
D1=upcoef2('
d'
cD1,'
figure;
subplot(221);
image(wcodemat(A1,180));
title('
ApproximationA1'
subplot(222);
image(wcodemat(H1,255));
HorizontalDetailH1'
subplot(223);
image(wcodemat(V1,255));
VerticalV1'
subplot(224);
image(wcodemat(D1,255));
DiagonalD1'
Y=2.0*IDWT2(A1,H1,V1,D1);
Y=imresize(Y,0.5);
image(Y);
原图像
一层小波变换的4个分量
实验四频率域高通滤波法
1)熟悉并学会使用Matlab中图像增强的相关函数。
2)了解图像增强的方法、去噪的方法和效果。
1)将一幅图视为一个二维矩阵,用Matlab进行图像增强。
2)利用Matlab图像处理工具箱中的imread、imshow、imnoise、filter2对图像进行去噪处理。
3)图像灰度修正:
灰度变换。
对不满意的图像通过线性灰度映射关系进行变换,其效果可以得到明显提高。
通过分析,会发现前后图像的直方图也会发生相应的变化。
4)图像平滑方法:
领域平均、中值滤波。
5)图像锐化方法。
人眼对目标边缘和轮廓较为敏感,对图像进行锐化,有助于突出这些图像的特征。
从频率域看,锐化提升了图像的高频分量。
4.1采用线性变换进行图像增强。
应用Matlab函数imadjust将图像在0.3×
255~0.7×
255灰度之间的值通过线性变换映射到0~255之间。
subplot(2,2,1),imshow(I);
subplot(2,2,2),imhist(I);
J=imadjust(I,[0.30.7],[]);
subplot(2,2,3),imshow(J);
subplot(2,2,4),imhist(J);
原图原图像的直方图
输出图像输出图像的直方图
4.2求“布罗格的画”图像的归一化直方图
布格罗的画.jpg'
subplot(1,2,1),imshow(J);
N=numel(J);
pr=imhist(J)/N;
k=0:
255;
subplot(1,2,2),stem(k,pr);
实验结果
布罗格的画图像布罗格的画的直方图
4.3在Matlab环境中,采用直方图均衡的方法对tire.tif图像进行图像增强。
I=imread('
J=histeq(I);
原图像原图像的直方图
均衡后的图像均衡后图像的直方图
4.4分别采用上述前4种模块对受到椒盐噪声污染的eight.tif图像进行平滑处理。
%读入原始图像
Imshow(I,[]);
f=imnoise(I,'
salt&
pepper'
0.04);
%对图像加椒盐噪声,噪声强度为0,04
figure,imshow(f);
h0=1/9.*[111111111];
%定义平滑模板
h1=[0.10.10.1;
0.10.20.1;
0.10.10.1];
h2=1/16.*[121;
242;
121];
%高斯模板
h3=1/8.*[111;
101;
111];
g0=filter2(h0,f);
%用模板进行滤波处理
g1=filter2(h1,f);
g2=filter2(h2,f);
g3=filter2(h3,f);
figure,imshow(g0,[]);
%显示平滑处理结果
figure,imshow(g1,[]);
figure,imshow(g2,[]);
figure,imshow(g3,[]);
原始图像有噪声的图像用模版0处理后的图像
用模版1处理后的图像用模版2处理后的图像用模版3处理后的图像
4.5选用3*3的窗口对椒盐造噪声进行中值滤波。
Imshow(I);
J=imnoise(I,'
figure,imshow(J);
K=medfilt2(J);
%二维中值滤波
原始图像加噪声的图二维中值滤波后的图像
4.6利用罗伯茨梯度对rice.tif图像进行锐化处理
BW=edge(I,'
roberts'
0.1);
%对输入图像求罗伯茨梯度
figure,imshow(BW);
原始图像锐化后结果图
4.7应用拉普拉斯算子对rice.tif图像进行锐化处理。
imshow(I);
h=[0-10;
-14-1;
0-10];
J=imfilter(I,h);
figure,imhist(J);
K=imadjust(J,[0.00.2],[]);
figure,imhist(K);
figure,imshow(K);
原始图像拉普拉斯锐化对比扩展后的图像
拉普拉斯锐化后图像的直方图对锐化后图像的对比扩展
实验五图像编码与压缩
1)了解图像的压缩编码原理。
2)掌握常用的图像压缩算法。
1)去除数据冗余度可以有效的压缩数据。
2)图像压缩编码的主要技术指标:
压缩比、客观评价SNR、主管评价。
1)利用维纳滤波对有噪声模糊图像进行复原。
2)比较直接维娜滤波、设置信噪比参数、设置噪声和自相关函数这三种情况下的图像复原效果。
实验步骤
1)选择图6.19所示的原始图像作为测试图像。
2)设计图像复原算法。
3)设置维娜滤波中的相关参数。
对图像复原效果的影响。
4)显示原始图像和复原后的重建图像。
5)通过修改这些参数来观察参数对图像复原效果的影响。
程序代码如下:
blurred=imread('
flower.gif'
%读入无噪声模糊图像并命名为blurred
len=28;
theta=14;
PSF=fspecial('
motion'
len,theta);
wnr1=deconvwnr(blurred,PSF);
%维娜滤波复原图像
figure,imshow(wnr1);
-------------%读入有噪声模糊图像并命名为blurrednoisy
V=0.02;
NP=V*prod(size(I));
%计算噪声强度
Edged=edgetaper(blurrednoisy,PSF);
%使用edgetaper函数对图像进行预处理,以消除图像的不连续边界
[reg1LAGRA]=deconvreg(Edged,PSF,NP);
figure,subplot(2,2,1),imshow(reg1);
%小NP
reg2=deconvreg(Edged,PSF,NP*1.2);
subplot(2,2,2),imshow(reg2);
%大NP
reg3=deconvreg(Edged,PSF,[],LAGRA);
figure,subplot(2,2,1),imshow(reg3);
%小范围搜索
reg4=deconvreg(Edged,PSF,[],50*LAGRA);
subplot(2,2,2),imshow(reg4);
REGOP=[1-21];
%大范围搜索
reg3=deconvreg(Edged,PSF,[],LAGRA,REGOP);
figure,subplot(2,2,1),imshow(reg5);
%平滑约束复原
------------------------%读入有噪声的模糊图像并命名为Noisy
len=9;
theta=12;
gaussian'
len,theta);
%真是的PSF
UNDERPSF=ones(size(PSF)-4);
%该PSF数据的每一维都比真实的PSF少4个像素
[J1P1]=deconvblind(Nosiy,UNDERPSF);
figure,subplot(2,2,1);
imshow(J1);
OVERPSF=padarray(UNDERPSF,[4,4],'
replicate'
'
both'
%该PSF数组的每一维都比真实的PSF多4个像素
[J2P2]=deconvblind(Nosiy,OVERPSF);
subplot(2,2,2);
imshow(J2);
INITPSF=padarray(UNDERPSF,[2,2],'
[J3P3]=deconvblind(Nosiy,INITPSF);
subplot(2,2,3);
imshow(J3);
实验六图像复原
实验目的
1)了解图像复原的原理。
2)掌握常用图像复原方法。
实验原理
1)了解不同条件下的图像退化成因河处理方法。
2)根据退化的数学模型对退化图像进行处理,恢复原始图像。
6.1使用deconvwnr对图像的无噪模糊图像进行复原重建,观察结果,并将不同PSF产生的复原效果进行比较。
原始图像无噪声模糊图像
使用真实PSF复原使用较“长”的PFS复原使用较“陡峭”的PFS复原
6.2对有噪声的模糊图像进行重建。
原始图像有噪声的模糊图像较小的PSF较大的PSF
6.3对无噪声的模糊图像使用最小二乘方滤波方法进行复原重建。
原始图像无噪声模糊图像小NP大NP
小范围搜索大范围搜索
实验七图像的边缘检测
1)熟悉MATALB图像工具箱的使用方法
2)熟悉图像边缘的检测方法
3)理解边缘检测在图像分割中的作用
采用查差分、梯度、拉普拉斯算子及各种高通滤波处理方法可以对图像边缘进行检测。
7.1根据4连通或8连通准则在二值图像中判断目标
BW=[11100000;
11101100;
11100010;
11100110;
11100000];
%给定的二值图像矩阵
L4=bwlabel(BW,4)%根据4连通准则判定目标
L8=bwlabel(BW,8)%根据8连通准则判定目标
L4=
11100000
11102200
11100030
11100330
L8=
11100020
11100220
7.2给出利用值分割图像tire.tif的实例
imhist(I);
T=110;
S=size(I);
[maxI,maxP]=max(max(I(:
:
)));
%maxI为图像I的最大灰度值,maxP为其位置
[minI,minP]=min(min(I(:
%maxI为图像I的最大灰度值,maxP为其位置fori=1:
S
(1)
forj=1:
S
(2)
ifI(i,j)>
=TI(i,j)=255;
elseI(i,j)=0;
end
end
原始图像直方图
合适的阈值分割(T110)
7.3给出利用梯度算子对图像tire.tif进行边缘检测的实例
BW1=edge(I,'
%进行Roberts算子边缘检测,门限值采用MATLAB默认值
BW2=edge(I,'
prewitt'
%进行Prewitt算子边缘检测,门限值采用MATLAB默认值
BW3=edge(I,'
sobel'
%进行Sobel算子边缘检测,门限值采用MATLAB默认值
BW4=edge(I,'
log'
%进行LoG算子边缘检测,门限值采用MATLAB默认值
BW5=edge(I,'
canny'
%进行canny算子边缘检测,门限值采用MATLAB默认值
figure,imshow(BW1,[]);
figure,imshow(BW2,[]);
figure,imshow(BW3,[]);
figure,imshow(BW4,[]);
figure,imshow(BW5,[]);
原图像roberts算子检测prewitt算子检测
sobel算子检测log算子检测canny算子检测
7.4利用bwtraceboundary函数对图像blobs.png进行边缘跟踪
BW=imread(‘blobs.png’);
imshow(BW,[]);
s=size(BW);
forrow=2:
55:
s
(1)
forcol=1:
s
(2)
ifBW(row,col),break;
end
contour=bwtraceboundary(BW,[row,col],‘W’,8,50,‘counterclockwise’);
if(~isempty(contour))holdon;
plot(contour(:
2),contour(:
1),‘g’,‘LineWidth’,2);
holdon;
plot(col,row,‘gx’,‘LineWidth’,2);
else
plot(col,row,‘rx’,‘LineWidth’,2);
实验八彩色空间的表示和转换
1)了解颜色空间的基本概念及转换原理
2)能利用MATLAB工具箱和有关公式,在RGB、YIQ、HSV等颜色空间中读取、显示彩色图像
1)利用MATLAB图像工具箱读、写和显示图像文件
2)颜色的基本概念
RGB1=imread('
RGB2=imadjust(RGB1,[.2.30;
.6.71],[]);
subplot(1,2,1);
imshow(RGB1),
xlabel('
原始彩色图像'
subplot(1,2,2),imshow(RGB2);
增强后的图像'