数字图像实验报告.docx
- 文档编号:8538383
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:35
- 大小:541.17KB
数字图像实验报告.docx
《数字图像实验报告.docx》由会员分享,可在线阅读,更多相关《数字图像实验报告.docx(35页珍藏版)》请在冰豆网上搜索。
数字图像实验报告
江苏科技大学
数字图像处理实验报告
设计题目:
数字图像处理
专业名称:
软件工程
班级:
13419042
学号:
1341904222
姓名:
陆建伟
指导教师:
胡春龙
2016年4月25日
目录
实验一数字图像的采集和Photoshop软件的操作I
1.1实验目的I
1.2实验任务及要求II
1.3实验内容、步骤和结果、分析II
1.4结果分析III
实验二图像的傅里叶变换I
1.1实验目的I
1.2实验任务及要求II
1.3实验内容、步骤和结果II
1.4结果分析III
实验三图像的灰度变换和直方图变换I
1.1实验目的I
1.2实验任务及要求II
1.3实验内容、步骤和结果II
1.4结果分析III
实验四图像的平滑处理I
1.1实验目的I
1.2实验任务及要求II
1.3实验内容、步骤和结果II
1.4结果分析III
实验五图像的锐化处理I
1.1实验目的I
1.2实验任务及要求II
1.3实验内容、步骤和结果II
1.4结果分析III
实验六图像的边缘检测与分割I
1.1实验目的I
1.2实验任务及要求II
1.3实验内容、步骤和结果II
1.4结果分析III
实验一数字图像的采集和Photoshop软件的操作
1.1实验目的
1.1.1书序并掌握matlab、Photoshop等工具的使用。
1.1.2实现图像的读取、显示、代数运算和简单变换。
1.2实验任务及要求
●读取图像文件
1.Imread
Imread函数用于写入图像文件,如:
imread(‘e:
\w01.jpg’)
2.Imwrite
Imwrite函数用于写入图像文件,如:
imwrite(a,’e:
\w01.jpg’)
3.Imfinfo
Imfinfo函数用于读取图像文件的有关信息,如:
imfinfo(‘e:
\w01.jpg’)
●图像的显示
1.Image
Image函数是matlab提供的最原始的图像显示函数。
如:
a=[1,2,3,4;4,5,6,7;8,9,10,11,12];image(a);
2.Imshow
Imshow函数用于图像文件的显示,如:
i=imread(‘e:
\w01.jpg’);imshow(i);title(‘原图像’)
3.Imresize
改变图像大小
I=imresize(j,[m,n])将图像j大小调整为m行n列
●图像运算
1.Imadd
两幅图像想家,要求同意大小,同种数据类型
Z=imadd(x,y)表示图像x+y
2.Imsubstract
两幅图像相减,要求同样大小,同种数据类型
Z=imsubtract(x,y)表示x-y
3.Immultiply
4.Z=Immultiply(x,y)表示x*y
5.Imdivide
6.Z=Imdivide(x,y)表示x/y
1.3实验内容、步骤、结果
1.3.1实验内容
1、读取RGB图像,转换成灰度图像和二值图像,在同一个窗口分成三个子窗口显示RGB图像、灰度图像和二值图像;
1.打开Matlab,在命令框内输入相应地代码
a=imread('D:
\jj.jpg')
i=rbg2gray(a)
I=im2bw(a,0.5)
subplot(3,1,1);imshow(a);title('原图像')
subplot(3,1,2);imshow(i);title('灰度图像')
subplot(3,1,3);imshow(I);title('二值图像'
2.实验结果如图1.1
图1.1
2、图像执行加、减、乘、除操作,窗口内分成五个子窗口显示;
1.实验代码
a=imread('D:
\jj.jpg');
A=imresize(a,[800,800]);
b=imread('D:
\tt.jpg');
B=imresize(b,[800,800]);
Z1=imadd(A,B);
Z2=imsubtract(A,B);
Z3=immultiply(A,B);
Z4=imdivide(A,B);
subplot(3,2,1);imshow(A);title('原图像')
subplot(3,2,2);imshow(B);title('原图像B')
subplot(3,2,3);imshow(Z1);title('加法图像')
subplot(3,2,4);imshow(Z2);title('减法图像')
subplot(3,2,5);imshow(Z3);title('乘法图像')
subplot(3,2,6);imshow(Z2);title('除法图像')
2.实验结果如图1.2
图1.2
3、对图像进行灰度变化,实现图像变亮,变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示;
1.实验代码
a=imread('D:
\jj.jpg');
m=imadjust(a,[,],[0.5;1]);
n=imadjust(a,[,],[0;0.5]);
g=255-a;
subplot(2,2,1);imshow(a);title('原图像')
subplot(2,2,2);imshow(m);title('图像变亮')
subplot(2,2,3);imshow(n);title('图像变暗')
subplot(2,2,4);imshow(g);title('负片效果')
2.实验结果如图1.3
图1.3
1.4结果分析
通过本次实验,我知道了图像采集的几种方法。
对图像的加减乘除处理,ps的使用。
实验二图像的傅里叶变换
2.1实验目的
2.1.1熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。
2.2实验任务及要求
●图像的变换
1.fft2
fft2函数用于数字图像的二维傅里叶变换,如:
i=imread(‘e:
\w01.jpg’);
j=fft2(i);
由于matlab无法显示附属图像,因此变换后的结果还需要进行求模运算,即调用ads函数
之后常常还进行对数变换,即调用log函数,以减缓傅里叶谱的快速衰减,更好的显示高频信息
2.ifft2
ifft2函数用于数字图像的二维傅里叶反变换,如:
j=fft2(i);
k=ifft2(j);
3.fftshift
用于将变换后的图像频谱中心从矩阵的原点移动到矩阵的中心
B=fftshift(i)
4.利用fft2计算二维卷积
利用fft2函数可以计算二维卷积,如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
a(8,8)=0;
b(8,8)=0;
c=ifft2(fft2(a).*fft2(b));
c=c(1:
5,1:
5);
利用conv2(二维卷积函数)校验,如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
c=conv2(a,b);
2.3实验内容、步骤、结果
1、对图像平移,显示原始图像与处理后图像,对其进行傅里叶变换,显示结果,分析其对应关系。
1.实验代码
s=imread('D:
\tt.jpg');
i=rgb2gray(s);
i=double(i);
j=fft2(i);
k=fftshift(j);
l=log(abs(k));
m=fftshift(j);
RR=real(m);
II=imag(m);
A=sqrt(RR.^2+II.^2);
A=(A-min((min(A))))/(max(max(A)))*255;
b=circshift(s,[800450]);
b=rgb2gray(b);
b=double(b);
c=fft2(b);
e=fftshift(c);
l=log(abs(e));
f=fftshift(c);
WW=real(f);
ZZ=imag(f);
B=sqrt(WW.^2+ZZ.^2);
B=(B-min(min(B)))/(max(max(B)))*255;
subplot(2,2,1);imshow(s);title('原图像');
subplot(2,2,2);imshow(uint8(b));title('平移图像');
subplot(2,2,3);imshow(A);title('离散傅里叶频谱');
subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱');
2.实验结果如图2.1
图2.1
2.对图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。
1.代码如下
s=imread('D:
\tt.jpg');%读入原图像
i=rgb2gray(s);
i=double(i);
j=fft2(i);%傅里叶变换
k=fftshift(j);%直流分量移到频谱中心
l=log(abs(k));%对数变换
m=fftshift(j);%直流分量移到频谱中心
RR=real(m);%取傅里叶变换的实部
II=imag(m);%取傅里叶变换的虚部
A=sqrt(RR.^2+II.^2);%计算频谱府幅值
A=(A-min(min(A)))/(max(max(A)))*255;%归一化
b=imrotate(s,-90);%对图像矩阵im中的数据进行移位操作
b=rgb2gray(b);
b=double(b);
c=fft2(b);%傅里叶变换
e=fftshift(c);%直流分量移到频谱中心
l=log(abs(e));%对数变换
f=fftshift(c);%直流分量移到频谱中心
WW=real(f);%取傅里叶变换的实部B
ZZ=imag(f);%取傅里叶变换的虚部
B=sqrt(WW.^2+ZZ.^2);%计算频谱府幅值
B=(B-min(min(B)))/(max(max(B)))*255;%归一化
subplot(2,2,1);imshow(s);title('原图像')
subplot(2,2,2);imshow(uint8(b));;title('平移图像')
subplot(2,2,3);imshow(A);title('离散傅里叶频谱');
subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱')
2.实验结果如图2.2
图2.2
2.4结果分析
傅里叶变换进行图像处理有几个特点:
直流成分F(0,0)等于图像的平均值;能量频谱|F(u,v)|^2完全对称于原点;其中F=PfQ,f表示原图,P和Q都是对称的实正交矩阵,这个公式表示傅里叶变换就是个正交矩阵的正交变换;图像f平移(a,b)后,F只有exp[-2pij(au/M+bv/M)]的相位变化,能量频谱不发生变化;图像f自乘平均等于能量频谱的总和,f的分散等于能量频谱中除直流成分后的总和;图像f(x,y)和g(x,y)的卷积h(x,y)=f(x,y)*g(x,y)的傅里叶变换H(u,v)等于f(x,y)和g(x,y)各自的傅里叶变换的乘积。
实验三图像的灰度变换和直方图变换
3.1实验目的
1、熟悉及掌握图像的采样原理,实现图像的采样过程,进行图像的灰度转换;
2、理解直方图的概念及应用,实现图像直方图的显示,及通过直方图的均衡化和直方图规定划方法对图像进行修正。
3.2实验任务及要求
1、灰度转换
灰度变换是图像增强技术中最简单的一类。
常用的三类基本函数:
线性函数、对数函数、幂次函数。
(1)图像反转:
Image=imread('Fig3.04(a).jpg'); imshow(Image);
Image=255-double(Image); %反转 figure
(2),imshow(uint8(Image));
(2)对数变换:
Image=imread('Fig3.05(a).jpg'); imshow(Image);
Image=log(1+double(Image)); figure
(2),imshow(Image,[]);
(3)幂次变换
Image=imread('Fig3.09(a).jpg'); imshow(Image);
Image2=double(Image).^3.0; %γ=3 figure
(2),imshow(Image2,[]);
Image2=double(Image).^4.0; figure(3),imshow(Image2,[]);
Image2=double(Image).^5.0; figure(4),imshow(Image2,[]);
2.灰度直方图的显示 imhist
imhist是MATLAB提供的显示图像灰度直方图的函数。
(1) 显示图像cameraman.tif 的直方图。
x=imread('cameraman.tif');
figure subplot(2,1,1)
imshow(x)
subplot(2,1,2)
imhist(x)
(2)还可以将直方图显示成其他形式,比如柱形图(续一)或者折线图
h=imhist(x);
h1=h(1:
10:
256);
horz=1:
10:
256;
bar(horz,h1)
axis([0 255 0 1500])
set(gca, 'xtick',0:
50:
255)
set(gca, 'ytick',0:
200:
1500)
h=imhist(x);
plot(h)
3.3实验内容、步骤、结果
1.对一幅图进行2倍、4倍、8倍和16倍减采样,显示结果;
1.实验代码
a=imread('D:
\jj.jpg');
b=rgb2gray(a);
form=1:
4
figure
[width,height]=size(b);
quartimage=zeros(floor(width/(m)),floor(height/(2*m)));
k=1;
n=1;
fori=1:
(m):
width
forj=1:
(2*m):
height
quartimage(k,n)=b(i,j);
n=n+1;
end
k=k+1;
n=1;
end
imshow(uint8(quartimage));
end
2.实验结果如图3.1
图3.1
2.显示一幅灰度图像a,改变图像的亮度使其整体变暗得到图像b,显示两幅图像的直方图;
1.实验代码
a=imread('D:
\jj.jpg');
c=rgb2gray(a);
b=c-46;
subplot(3,2,1);imhist(c);title('直方图')
subplot(3,2,2);imhist(b);title('变暗后的直方图')
subplot(3,2,3);imshow(c);title('原图像')
subplot(3,2,4);imshow(b);title('变暗后的图像')
d=imadjust(c,[0,1],[1,0]);
subplot(3,2,5);imshow(d);title('灰度调整后的图像')
2.实验结果如图3.2
图3.2
3.对图像b进行直方图均衡化,显示结果图像和对应的直方图;
1.实验代码
b=imread('D:
\jj.jpg');
c=rgb2gray(b);
j=histeq(c);
subplot(2,2,1),imshow(c);title('原图像')
subplot(2,2,2),imshow(j);title('均衡化后的图像')
subplot(2,2,3),imhist(c);title('原直方图')%显示原始图像直方图
subplot(2,2,4),imhist(j);title('均衡化后的直方图')%显示均衡化后图像直方图
2.实验结果如图3.3
图3.3
4.对B进行分段线性变换处理,试比较与直方图均衡化处理的异同。
1.实验代码
x1=0:
0.01:
0.125;
x2=0.125:
0.01:
0.75;
x3=0.75:
0.01:
1;
y1=2*x1;
y2=0.25+0.6*(x2-0.125);
y3=0.625+1.5*(x3-0.75);
x=[x1,x2,x3];
y=[y1,y2,y3];
plot(x,y);
2.实验结果如图3.4
图3.4
3.4结果分析
通过本次实验,我明白了灰度变换和直方图变换的特点及优缺点。
实验四图像的平滑处理
4.1实验目的
1、熟悉并掌握常见的图像噪声种类;
2、理解并掌握常用的图像的平滑技术,如领域平均法和中值滤波的原理、特点、适用对象。
4.2实验任务及要求
图像平滑的目的是消除图像噪声、恢复原始图像。
实际中摄取的图像一般都含有某种噪声,引起噪声的原因很多,噪声的种类也很多。
总的来说,可以将噪声分为加性噪声和乘性噪声。
加性噪声中包涵高斯噪声、椒盐噪声等典型噪声。
Imnosie格式:
j=imnoise(I,type,parameters);
常见的去除噪声的方法有:
领域平均法、空间域低通滤波、频率与低通滤波、中值滤波等,二维中值滤波的matlab函数为medfilt2.
1.Imnoise
Imnoise函数用于对图像生成模拟噪声,如:
I=imread(‘e:
/w01.tif’);
J=imnoise(I,’gaussian’,0,0.02);
J=imnoise(I,’salt&pepper’,0.04);
2.Fspecial
Fspecial函数用于昌盛预定义滤波器,如:
H=fspecial(‘sobel’);
H=fspecial(‘gaussian);
H=fspecial(‘laplacian);
H=fspecial(‘log);
H=fspecial(‘average);
3.基于卷积的图像滤波函数
Imfilter函数,filter2函数,二维卷积conv2滤波,都可以用于图像滤波,用法类似,如:
H=fspecial(‘prewitt’);
M=imfilter(i.h);
Imshow(m);
或者:
I=imread(‘e:
/w01.tif’);
H=[1,1,1;1,1,1;1,1,1];
H=h/9;
J=conv2(I,h);
4.3实验内容、步骤、结果
1.读出图像,给读出的图像分别加入高斯噪声、椒盐噪声和乘性噪声,并与原图像显示在同一图像窗口中;
1.实验代码
a=imread('D:
\jj.jpg');
i=rgb2gray(a);
I1=imnoise(i,'gaussian',0,0.02);
I2=imnoise(i,'salt&pepper',0.02);
I3=imnoise(i,'speckle',0.02);
subplot(2,2,1),imshow(i);title('原图像');
subplot(2,2,2),imshow(I1);title('受高斯污染的图像');
subplot(2,2,3),imshow(I2);title('受椒盐噪声污染的图像');
subplot(2,2,4),imshow(I3);title('受乘性噪声污染的图像');
2.实验结果如图4.1
图4.1
2.对受高斯噪声(模拟值为0方差为0.02的高斯噪声)干扰的图像分别利用领域平均法和中值滤波法进行滤波去噪(窗口可变,可先取3*3,依次再取5*5,7*7),并显示滤波结果;
1.实验代码
a=imread('D:
\jj.jpg');
i=rgb2gray(a);
I=imnoise(i,'gaussian',0,0.02);
H1=ones(3,3)/9;
H2=ones(5,5)/25;
H3=ones(7,7)/49;
J=imfilter(i,H1);
J1=imfilter(I,H1);
J2=imfilter(I,H2);
J3=imfilter(I,H3);
Z=medfilt2(i,[3,3]);
Z1=medfilt2(I,[3,3]);
Z2=medfilt2(I,[5,5]);
Z3=medfilt2(I,[7,7]);
subplot(4,2,1),imshow(J);title('原图像领域平均滤波后');
subplot(4,2,2),imshow(J1);title('高斯3*3领域平均滤波后');
subplot(4,2,3),imshow(J2);title('高斯5*5领域平均滤波后');
subplot(4,2,4),imshow(J3);title('高斯7*7领域平均滤波后');
subplot(4,2,5),imshow(Z);title('原图像中值滤波后');
subplot(4,2,6),imshow(Z1);title('高斯3*3中值滤波后');
subplot(4,2,7),imshow(Z2);title('高斯5*5中值滤波后');
subplot(4,2,8),imshow(Z3);title('高斯7*7中值滤波后');
2.实验结果如图4.2
图4.2
3.对受椒盐噪声的图像(噪声方差为0.02)干扰的图像,选择合适的滤波器将噪声去噪;
1.实验代码
a=imread('D:
\jj.jpg');
i=rgb2gray(a);
I=imnoise(i,'salt&pepper',0.02);
Z=medfilt2(i,[3,3]);
Z1=medfilt2(I,[3,3]);
Z2=medfilt2(I,[5,5]);
Z3=medfilt2(I,[7,7]);
subplot(2,2,1),imshow(Z);title('原图像中值滤波后');
subplot(2,2,2),imshow(Z1);title('椒盐3*3中值滤波后');
subplot(2,2,3),imshow(Z2);title('椒盐5*5中值滤波后');
subplot(2,2,4),imshow(Z3);title('椒盐7*7中值滤波后');
2.实验结果如图4.3
图4.3
4.对受乘性噪声的图像(噪声方差为0.02)干扰的图像,选择合适的滤波器将噪声去噪。
1.实验代码
a=imread('D:
\jj.jpg');
i=rgb2gray(a);
I=imnoise(i,'speckle',0.02);
H1=ones(3,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 实验 报告