数字图像处理MATLAB程序实验大纲.docx
《数字图像处理MATLAB程序实验大纲.docx》由会员分享,可在线阅读,更多相关《数字图像处理MATLAB程序实验大纲.docx(17页珍藏版)》请在冰豆网上搜索。
数字图像处理MATLAB程序实验大纲
实验一图像的点运算
实验1.1直方图
一.实验目的
1.熟悉matlab图像处理工具箱及直方图函数的使用;
2.理解和掌握直方图原理和方法;
二.实验设备
1.PC机一台;2.软件matlab。
三.程序设计
在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif'>。
%读取图像
subplot(1,2,1>,imshow(I>%输出图像
title('原始图像'>%在原始图像中加标题
subplot(1,2,2>,imhist(I>%输出原图直方图
title('原始图像直方图'>%在原图直方图上加标题
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;b5E2RGbCAP
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察图像matlab环境下的直方图分布。
(a>原始图像(b>原始图像直方图
六.实验报告要求
1、给出实验原理过程及实现代码;
2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验1.2直方图均衡化
一.实验目的
1.熟悉matlab图像处理工具箱中直方图均衡化函数的使用;
2.理解和掌握直方图均衡化原理和实现方法;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif'>。
%读取图像
subplot(2,2,1>,imshow(I>%输出图像
title('原始图像'>%在原始图像中加标题
subplot(2,2,3>,imhist(I>%输出原图直方图
title('原始图像直方图'>%在原图直方图上加标题
a=histeq(I,256>。
%直方图均衡化,灰度级为256
subplot(2,2,2>,imshow(a>%输出均衡化后图像
title('均衡化后图像'>%在均衡化后图像中加标题
subplot(2,2,4>,imhist(a>%输出均衡化后直方图
title('均衡化后图像直方图'>%在均衡化后直方图上加标题
四.实验步骤
1.启动matlab:
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的灰度均衡函数,设置参数;最后输出处理后的图像;p1EanqFDPw
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下图像灰度均衡结果及直方图分布。
(a>原始图像(b>均衡化后图像
(c>原始图像直方图(d>均衡化后图像直方图
实验二图像滤波
实验2.13*3均值滤波
一.实验目的
1.熟悉matlab图像处理工具箱及均值滤波函数的使用;
2.理解和掌握3*3均值滤波的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像增强<均值滤波)函数,设置相关参数,再输出处理后的图像。
DXDiTa9E3d
I=imread('cameraman.tif'>。
figure,imshow(I>。
J=filter2(fspecial(‘average’,3>,I>/255。
figure,imshow(J>。
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的图像增强<均值滤波)函数,设置参数;最后输出处理后的图像;RTCrpUDGiT
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下原始图像经3*3均值滤波处理后的结果。
(a>原始图像(b>3*3均值滤波处理后的图像
图(3>
实验2.23*3中值滤波
一.实验目的
1.熟悉matlab图像处理工具箱及中值滤波函数的使用;
2.理解和掌握中值滤波的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像增强<中值滤波)函数,设置相关参数,再输出处理后的图像。
5PCzVD7HxA
I=imread('cameraman.tif'>。
figure,imshow(I>。
J=medfilt2(I,[5,5]>。
figure,imshow(J>。
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的图像增强<中值滤波)函数,设置参数;最后输出处理后的图像;jLBHrnAILg
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下原始图像经3*3中值滤波处理后的结果。
(a>原始图像(b>3*3中值滤波处理后的图像
图(4>
实验三图像几何变换
实验3.1图像的缩放
一.实验目的
1.熟悉matlab图像处理工具箱及图像缩放函数的使用;
2.掌握图像缩放的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif'>。
figure,imshow(I>。
scale=0.5。
J=imresize(I,scale>。
figure,imshow(J>。
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的图像缩放函数,设置参数;最后输出处理后的图像;xHAQX74J0X
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下图像缩放后的结果。
(a>原始图像(b>缩放后的图像
图(5>
实验3.2图像旋转
一.实验目的
1.熟悉matlab图像处理工具箱及图像旋转函数的使用;
2.理解和掌握图像旋转的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像旋转函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif'>。
figure,imshow(I>。
theta=30。
K=imrotate(I,theta>。
%Tryvaryingtheangle,theta.LDAYtRyKfE
figure,imshow(K>
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的图像旋转函数,设置参数;最后输出处理后的图像;Zzz6ZB2Ltk
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下图像旋转后的结果。
(a>原始图像(b>旋转后的图像
图(7>
实验四图像边缘检测
实验4.1边缘检测一.实验目的
1.熟悉matlab图像处理工具箱及图像边缘检测函数的使用;
2.理解和掌握图像边缘检测二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像边缘检测dvzfvkwMI1
I=imread('cameraman.tif'>。
J1=edge(I,'sobel'>。
J2=edge(I,'prewitt'>。
J3=edge(I,'log'>。
subplot(1,4,1>,imshow(I>。
subplot(1,4,2>,imshow(J1>。
subplot(1,4,3>,imshow(J2>。
subplot(1,4,4>,imshow(J3>。
四.实验步骤
1.启动matlab
双击桌面matlab图标启动matlab环境;
2.在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:
cameraman图像;再调用相应的边缘检测3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察经过图像边缘检测(a>原始图像(b>Sobel边缘算子
(c>Prewitt边缘算子(d>Log边缘算子
图(7>
六.实验报告要求
输入一幅灰度图像,给出其图像边缘检测EmxvxOtOco
实验五图像傅立叶变换
%%%%%图像傅里叶变换实验
I1=imread(‘lena.tif\>。
%读入原图像文件
I2=imread('cell.tif'>。
%读入原图像文件
I3=imread('cameraman.tif'>。
%读入原图像文件
subplot(3,2,1>。
imshow(I1>。
%显示原图像
fftI1=fft2(I1>。
%二维离散傅立叶变换
sfftI1=fftshift(fftI1>。
%直流分量移到频谱中心
RR1=real(sfftI1>。
%取傅立叶变换的实部
II1=imag(sfftI1>。
%取傅立叶变换的虚部
A1=sqrt(RR1.^2+II1.^2>。
%计算频谱幅值
A1=(A1-min(min(A1>>>/(max(max(A1>>-min(min(A1>>>*225。
%归一化SixE2yXPq5
subplot(3,2,2>。
imshow(A1>。
%显示原图像的频谱
subplot(3,2,3>。
imshow(I2>。
%显示原图像
fftI2=fft2(I2>。
%二维离散傅立叶变换
sfftI2=fftshift(fftI2>。
%直流分量移到频谱中心
RR2=real(sfftI2>。
%取傅立叶变换的实部
II2=imag(sfftI2>。
%取傅立叶变换的虚部
A2=sqrt(RR2.^2+II2.^2>。
%计算频谱幅值
A2=(A2-min(min(A2>>>/(max(max(A2>>-min(min(A2>>>*225。
%归一化6ewMyirQFL
subplot(3,2,4>。
imshow(A2>。
%显示原图像的频谱
subplot(3,2,5>。
imshow(I3>。
%显示原图像
fftI3=fft2(I3>。
%二维离散傅立叶变换
sfftI3=fftshift(fftI3>。
%直流分量移到频谱中心
RR3=real(sfftI3>。
%取傅立叶变换的实部
II3=imag(sfftI3>。
%取傅立叶变换的虚部
A3=sqrt(RR3.^2+II3.^2>。
%计算频谱幅值
A3=(A3-min(min(A3>>>/(max(max(A3>>-min(min(A3>>>*225。
%归一化kavU42VRUs
subplot(3,2,6>。
imshow(A3>。
%显示原图像的频谱
实验六图像分割
%直方图双峰法分割
I1=imread('cell.tif'>。
%读入原图像文件
subplot(2,3,1>。
imshow(I1>。
%显示原图像
subplot(2,3,2>,imhist(I1>。
level=graythresh(I1>。
I2=im2bw(I1,level>。
subplot(2,3,3>,imshow(I2>。
%边界检测法分割
I3=imread('cell.tif'>。
%读入原图像文件
subplot(2,3,4>。
imshow(I3>。
%显示原图像
I4=edge(I3,'sobel'>。
[B,L]=bwboundaries(I4,'noholes'>。
subplot(2,3,5>,imshow(-im2bw(L>>。
holdon
fork=1:
length(B>
boundary=B{k}。
plot(boundary(:
2>,boundary(:
1>,'w','linewidth',2>。
y6v3ALoS89
end
实验七图像退化复原
%%%%%%%%%%%%%%%%%%%%图像复原实验<维纳滤波)
I=imread('e:
\testimage\Lena.bmp'>。
%I=rgb2gray(I>。
J1=imnoise(I,'gaussian',0,0.02>。
J2=imnoise(I,'salt&pepper',0.02>。
subplot(2,5,1>,imshow(I>。
title('originalimage'>。
subplot(2,5,2>,imshow(J1>。
title('gaussiannosiedimage'>。
subplot(2,5,7>,imshow(J2>。
title('saltnosiedimage'>。
K1=wiener2(J1,[33]>。
。
%gaussiannoise
K2=wiener2(J1,[55]>。
K3=wiener2(J1,[99]>。
subplot(2,5,3>,imshow(K1>。
title('wiener3*3image'>。
subplot(2,5,4>,imshow(K2>。
title('wiener5*5image'>。
subplot(2,5,5>,imshow(K3>。
title('wiener9*9image'>。
K4=wiener2(J2,[33]>。
%saltpeppernoise
K5=wiener2(J2,[55]>。
K6=wiener2(J2,[99]>。
subplot(2,5,8>,imshow(K4>。
title('wiener3*3image'>。
subplot(2,5,9>,imshow(K5>。
title('wiener5*5image'>。
subplot(2,5,10>,imshow(K6>。
title('wiener9*9image'>。
实验八图像代数运算
图像代数(加与减>运算:
I=imread('lena.jpg'>。
J=rgb2gray(I>。
K=histeq(J,256>。
subplot(2,2,1>,imshow(J>。
title('原始图像J'>
subplot(2,2,2>,imshow(K>。
title('直方图均衡化图像K'>G=double(J>-double(K>。
M2ub6vSTnP
subplot(2,2,3>,imshow(uint8(G>>;title('J-K'>
H=double(K>+double(J>。
subplot(2,2,4>,imshow(uint8(H>>。
title('J+K'>
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。