图形图像处理实验报告

2024-05-08

图形图像处理实验报告(共6篇)

篇1:图形图像处理实验报告

数字图象处理实验指导书

实验一 图象变换实验

实 验

实验名称:图像处理姓名:刘强

班级:电信

学号:

报 告

1102

1404110128

数字图象处理实验指导书

实验一 图象变换实验

实验一 图像变换实验——图像点运算、几何变换及正交变换

一、实验条件

PC机 数字图像处理实验教学软件

大量样图

二、实验目的

1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;

2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;

3、观察图像的灰度直方图,明确直方图的作用和意义;

4、观察图像点运算和几何变换的结果,比较不同参数条件下的变换效果;

5、观察图像正交变换的结果,明确图像的空间频率分布情况。

三、实验原理

1、图像灰度直方图、点运算和几何变换的基本原理及编程实现步骤

图像灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。

图像点运算是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。点运算可以看作是“从象素到象素”的复制操作,而这种复制操作是通过灰度变换函数实现的。如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:

B(x,y)=f[A(x,y)] 其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系。一旦灰度变换函数确定,该点运算就完全确定下来了。另外,点运算处理将改变图像的灰度直方图分布。点运算又被称为对比度增强、对比度拉伸或灰度变换。点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸和均衡等。

图像几何变换是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放和图像旋转等,其理论基础主要是一些矩阵运算,详细原理可以参考有关书籍。

实验系统提供了图像灰度直方图、点运算和几何变换相关内容的文字说明,用户在操作过程中可以参考。下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:

数字图象处理实验指导书

实验一 图象变换实验

2、图像正交变换的基本原理及编程实现步骤 数字图像的处理方法主要有空域法和频域法,点运算和几何变换属于空域法。频域法是将图像变换到频域后再进行处理,一般采用的变换方式是线性的正交变换(酉变换),主要包括傅立叶变换、离散余弦变换、沃尔什变换、霍特林变换和小波变换等。正交变换被广泛应用于图像特征提取、图像增强、图像复原、图像压缩和图像识别等领域。

正交变换实验的重点是快速傅立叶变换(FFT),其原理过于复杂,可以参考有关书籍,这里不再赘述。至于FFT的编程实现,系统采用的方法是:首先编制一个一维FFT程序模块,然后调用该模块对图像数据的列进行一维FFT,再对行进行一维FFT,最后计算并显示幅度谱。程序流程图如下:

四、实验内容

图像灰度直方图

点运算:图像反色、灰度线性变换、阈值变换、窗口变换、灰度拉伸和灰度

数字图象处理实验指导书

实验一 图象变换实验

均衡

几何变换:图像镜像变换、图像转置、图像平移、图像缩放和图像旋转 正交变换:傅立叶变换、离散余弦变换、沃尔什变换、霍特林变换和小波正反变换

注意:

1、所有实验项目均针对8位BMP灰度图像进行处理,其它格式(如JPG)的图像可以利用系统提供的图像格式转换工具进行转换,再进行处理;

2、本次实验的重点是图像的灰度直方图和点运算,几何变换和正交变换只作一般性了解。

五、实验步骤

以图像灰度阈值变换为例说明实验的具体步骤,其它实验项目的步骤与此类似。

1、打开计算机,在系统桌面上双击“数字图像处理实验教学软件系统”的可执行文件“图象处理”的图标,进入实验系统;

2、执行文件→打开,在OPEN对话框中选择待处理的图像,按【OK】后系统显示出图像;

3、执行查看→图像基本信息,将显示图像基本信息对话框,如图所示;

数字图象处理实验指导书

实验一 图象变换实验

4、执行查看→灰度直方图,查看图像的灰度直方图,如图所示;

5、执行图像变换→正交变换→傅立叶变换,查看图像的频率域分布情况,如图所示;

数字图象处理实验指导书

实验一 图象变换实验

6、执行图像变换→正交变换→小波变换,查看图像经过小波变换的效果,如图所示;

7、执行图像变换→点运算→阈值变换,修改阈值变换对话框中的阈值参数,如图所示;

数字图象处理实验指导书

实验一 图象变换实验

8、设置完阈值参数后按【OK】,系统显示阈值变换后的图像,与原图像进行比较,观察阈值变换的效果,如图所示;

9、重复步骤4,查看阈值变换后图像的直方图分布情况;

数字图象处理实验指导书

实验一 图象变换实验

10、重复步骤5,查看阈值变换后图像的频率域分布情况;

11、执行文件→保存或另存为,保存处理后的图像;

12、执行文件→重新加载,重新加载原始图像,但要注意先前对图像的处理将会丢失; 注意:

13、在执行步骤2时可能会出现有些图像文件不能打开的情况,如图所示,此时可以先利用图像格式转换工具将图像文件转换为8位BMP图像,再利用系统进行处理。步骤14和15是使用图像格式转换工具的方法;

14、在桌面上双击图像格式转换工具Jpg2bmp的图标,进入转换工具界面,如图所示;

15、按照界面提示,把JPG格式的图像文件转换成8位BMP图像。

数字图象处理实验指导书

实验一 图象变换实验

步骤13示意图

步骤14示意图

六、思考题

1、图像灰度线性变换、阈值变换、窗口变换、灰度拉伸和灰度均衡之间有何区别?

灰度线性变换就是将图像的像素值通过指定的线性函数进行变换,以此增强或者减弱图像的灰度。

灰度的阈值变换可以让一幅图像变成黑白二值图。

灰度的窗口变换也是一种常见的点运算。它的操作和阈值变换类似。从实现方法上可以看作是灰度折线变换的特列。窗口灰度变换处理结合了双固定阈值法,与其不同之处在于窗口内的灰度值保持不变。

灰度拉伸又叫做对比度拉伸,它与线性变换有些类似,不同之处在于灰度拉伸使用的是分段线性变换,所以它最大的优势是变换函数可以由用户任意合成。

灰度均衡是增强图像的有效方法之一。灰度均衡同样属于改进图像的方法,灰度均衡的图像具有较大的信息量。从变换后图像的直方图来看,灰度分布更加均匀。

2、利用图像镜像和旋转变换可以实现图像转置吗?如果可以,应该怎样实现?

可以。进行一次镜像变换,顺(逆)时针旋转两次,再以与第一次相反的方向镜像变换。

数字图象处理实验指导书

实验一 图象变换实验

实验二 图像增强及复原实验

七、实验条件

PC机 数字图像处理实验教学软件

大量样图

八、实验目的

1、熟练使用“数字图像处理实验教学软件系统”;

2、熟悉图像增强及复原的基本原理,了解编程实现的具体步骤;

3、观察图像中值滤波、平滑、锐化和伪彩色编码的结果,比较不同参数条件下的图像增强效果;

4、观察图像退化和复原的结果,比较不同复原方法的复原效果。

九、实验原理

1、图像增强和复原的基本原理

对降质图像的改善处理通常有两类方法:图像增强和图像复原。

图像增强不考虑图像降质的原因,只将图像中感兴趣的特征有选择地进行突出,并衰减图像的次要信息,改善后的图像不一定逼近原始图像,只是增强了图像某些方面的可读性,如突出了目标轮廓,衰减了各种噪声等。图像增强可以用空域法和频域法分别实现,空域法主要是在空间域中对图像象素灰度值直接进行运算处理,一般包括中值滤波、模板平滑和梯度锐化等,空域法可以用下式来描述:

g(x,y)=f(x,y)*h(x,y)其中f(x,y)是处理前图像,g(x,y)表示处理后图像,h(x,y)为空间运算函数。图像增强的频域法是在图像的频率域中对图像的变换值进行某种运算处理,然后变换回空间域,系统涉及的各种滤波器属于频域法增强,这是一种间接处理方法,可以用下面的过程模型来描述:

其中:F(u,v)=[ f(x,y)],G(u,v)= F(u,v)H(u,v),g(x,y)=1[ G(u,v)],和1分别表示频域正变换和反变换。实验系统提供了图像增强相关内容的文字说明,用户在操作过程中可以参考。

图像复原是针对图像降质的原因,设法去补偿降质因素,使改善后的图像尽可能逼近原始图像,提高了图像质量的逼真度。关于图像复原的详细原理可以参考相关书籍,这里不再赘述。本系统提供了图像的噪声退化、卷积退化和运动模糊退化操作,并提供了相应的逆滤波复原、维纳复原和运动模糊复原操作。本次

数字图象处理实验指导书

实验一 图象变换实验

实验中图像复原只作一般性了解。

2、编程实现步骤

下面以图像增强中的中值滤波操作为例给出编程实现的程序流程图,如下:

十、实验内容

图像增强:中值滤波、图像模板平滑、理想低通滤波器平滑、巴特沃斯低通滤波器平滑、梯度锐化、拉普拉斯锐化、理想高通滤波器锐化、巴特沃斯高通滤波器锐化和伪彩色编码

图像复原:图像的噪声退化、卷积退化、卷积加噪声退化、运动模糊退化、逆滤波复原、维纳复原和运动模糊复原

注意:

3、所有实验项目均针对8位BMP灰度图像进行处理;

4、本次实验的重点是图像增强中的中值滤波和模板平滑,图像复原只作一般性了解。

十一、实验步骤

以图像中值滤波操作为例说明实验的具体步骤,其它实验项目的步骤与此类似。

11、打开计算机,在系统桌面上双击“数字图像处理实验教学软件系统”的可执行文件“图象处理”的图标,进入实验系统;

12、执行文件→打开,在OPEN对话框中选择待处理的图像,按【OK】后系统显示出图像;

数字图象处理实验指导书

实验一 图象变换实验

13、执行查看→图像基本信息,将显示图像基本信息对话框,如图所示;

14、执行查看→灰度直方图,查看图像的灰度直方图,如图所示;

数字图象处理实验指导书

实验一 图象变换实验

15、执行图像变换→正交变换→傅立叶变换,查看图像的频率域分布情况,如图所示;

16、执行图像增强→中值滤波,选择或自定义对话框中的滤波器参数,如图所示;

数字图象处理实验指导书

实验一 图象变换实验

17、设置完滤波器参数后按【OK】,系统显示中值滤波后的图像,与原图像进行比较,观察中值滤波的效果,如图所示;

18、重复步骤4,查看中值滤波后图像的直方图分布情况;

数字图象处理实验指导书

实验一 图象变换实验

19、重复步骤5,查看中值滤波后图像的频率域分布情况;

10、执行文件→保存或另存为,保存处理后的图像;

11、执行文件→重新加载,重新加载原始图像,但要注意先前对图像的处理将会丢失。

数字图象处理实验指导书

实验一 图象变换实验

十二、思考题

1、图像中值滤波和模板平滑之间有何区别?

图像平滑处理就是用平滑模板对图像进行处理,以减少图像的噪声。而中值滤波是一种非线性的信号处理方法。

2、图像增强和图像复原之间有何区别?

图像增强:利用一定的技术手段,不用考虑图像是否失真(即原 始图像在变换后可能会失真)而且不用分析图像降质的原因。针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。

图像复原:针对质量降低或者失真的图像,恢复图像原始的内容或者质量。图像复原的过程包含对图像退化模型的分析,再对退化的图像进行复原。图像退化是由于成像系统受各种因素的影响,导致了图像质量的降低,称之为图像退化。这些因素包括传感器噪声、摄像机聚焦不佳、物体与摄像机之间的相对移动、随机大气湍流、光学系统的象差、成像光源和射线的散射等。图像复原大致可以分为两种方法:

一种方法适用于缺乏图像先验知识的情况,此时可对退化过程建立模型进行描述,进而寻找一种去除或消弱其影响的过程,是一种估计方法;

另一种方法是针对原始图像有足够的先验知识的情况,对原始图像建立一个数学模型并根据它对退化图像进行拟合,能够获得更好的复原效果。

3、图像维纳复原为什么比逆滤波复原效果好?

维纳滤波复原的原理可表示为

对于维纳滤波,由上式可知,当

时,由于存在 项,所以数字图象处理实验指导书

实验一 图象变换实验

不会出现被0除的情形,同时分子中含有项,在处。当时,此时维纳滤波就变成 了逆滤波;当时,表明维纳滤波避免了逆滤波中 出现的对噪声过多的放大作用,也就是说图像维纳复原比逆滤波复原效果好。

篇2:图形图像处理实验报告

实验课程名称

图像处理(第二版)

指 指 导 老 师

邓天明

学 学

交通运输

年级

2012 级

专业及班级

交通信息与控制工程二班

学 学 生 姓 名

号 631205090230

开 开 课 时 间

2014

2015

学年第 2

学期

总 总 成 绩

教师签名

实验名称 直方图均衡化 实验类型 验证型 实验时间 2015/6/2 实验地点 基础实验楼北 501 实验目的:

1.熟悉图像数据在计算机中的存储方式; 2.掌握图像直方图均衡化这一基本处理过程。

仪器、设备名称:

PC 微机一台和 MATLAB 软件。

实验要求及注意事项:

本次实验注意事项总结如下:

1、要学会利用 Matlab 中的帮助信息,因为很多函数的调用方法都是可以在帮助中找到的。在调用函数时应重点看 Examples 中的方式。

2、在 Matlab 中进行重复操作时,可以用方向上键重复命令,也可以在命令窗口中进行复制粘贴。

3、使用软件处理图像时,注意不要使用复杂图像,以免处理时间过长且显示效果不理想。

实验内容、操作步骤:

实验内容:

1.读入图像数据到内存中,并显示读入的图像; 2.实现直方图均衡化处理,显示处理前后图像的直方图。

3.显示并保存处理结果。

实验步骤:

1.打开 Matlab 编程环境; 2.获取实验用图像。用’imread’函数将图像读入 Matlab;用’imshow’函数显示读入的图像。

3.获取输入图像的直方图:用’imhist’函数处理图像。

4.均衡化处理:用’histeq’函数处理图像即可。

5.获取均衡化后的直方图并显示图像:用’imhist’和’imshow’函数。

6.保存实验结果:用’imwrite’函数处理。

实验结果分析(含数据、图表整理):

程序源代码 :

A = imread(‘D:TF.gif’, ‘gif’);imshow(A);imhist(A);histeq(A);Imhist(A);Imshow(A);Imwrite(A, ‘D:TF.gif’, ‘GIF’);

处理结果:

图 1

灰度图

图 2

均衡化图

图 3

直方图

实验收获、心得及建议:

直方图均衡化是直方图变换方法中的一种,进行图像增强的方法是以概率论为基础的。

直方图均衡化主要用于增强动态范围偏小的图像的反差。这个方法基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度德效果。

数字图像直方图均衡化之后直方图不是绝对平坦的,因为不能将同一个灰度值的各个像素变换到不同灰度级(或说此时仅根据灰度值区分不开不同的像素),所以数字图像直方图均衡化的结果一般只是近似均衡化的直方图。

在本次实验中发现:直方图均衡化在增强反差的同时也增强了图像的可视粒度。

实验名称 频域平滑滤波 实验类型 验证型 实验时间 2015/6/9 实验地点 基础实验楼北 501 实验目的:

1.熟悉图像数据在频率域的表示; 2.掌握频域图像增强的基本步骤。

仪器、设备名称:

PC 微机一台、MATLAB 软件、GIF 格式图片一张。

实验要求及注意事项:

在选择图片时应当选择 TTF 格式或者 GIF 格式的图片,若不是这种格式则应该在画图工具中改为上述格式,因为其他格式都打不开。

实验内容、操作步骤:

实验内容:

1.综合利用所学的数字图像基本存储结构、图像变换、图像增强等知识实现频率域图像增强; 2.在频率域进行用半径值分别为 5,15,30,80 和 230 的理想低通滤波器对图像进行平滑,并观察滤波效果。

操作步骤:

1.打开 Matlab 编程环境; 2.获取实验用图像。用’imread’函数将图像读入 Matlab;用’imshow’函数显示读入的图像。

3.将图像’uint8’格式转换为’double’格式,并将各点数据乘以-1 的(x+y)次方以便 FFT 变换后的结果中低频数据处于图像中央。

4.用’fft2’函数对图像数据进行二维 FFT 变换,得到频率域图像数据。

5.计算频率域图像的幅值并进行对数变换,利用’imshow’显示频率域图像。

6.在频率图像上去除滤波半径意外的数据(置 0)。

7.计算频率域图像的幅值并进行对数变换,利用’imshow’显示频率域图像。

8.用’fft2’函数对图像数据进行二维 FFT 逆变换,并用’real’函数取其实部,得到处理过的空间域图像数据。

9.将图像数据各点数据乘以-1 的(x+y)次方。

10.用’imshow’函数显示处理结果图像数据,并用’imwrite’函数保存图像处理结果数据。

实验结果分析(含数据、图表整理):

程序源代码:

function

idlvbo(r)

I=imread(“E: tu bailong1.gif”);

subplot(1,2,1),imshow(I);% 显示原图

title(“bailong2 原 图 ”);

k=double(I);% ‘ uint8 格式转换为‘ double ’

g=fft2(k);% 傅里叶变换

g=fftshift(g);% 实现低频数据处于图像中心

figure,imshow(g);

% % 除去滤波半径以外的数据

[M ,N]=size(g);% 计算幅值

m=fix(M/2);

n=fix(N/2);

%m=round(M/2);

%n=round(N/2);

for i=1:M

for j=1:N

d=sqrt((i--m)^2+(j--n)^2);

if

d<=r

h=1;

else

h=0;

end

y(i,j)=h*g(i,j);

end

end

y=ifftshift(y);

E1=ifft2(y);

E2=uint8(real(E1));

subplot(1,2,2),imshow(E2);

title(“ 处理后的图像 ”);

imwrite(E2,“E2.tif”,“tif”);

处理结果:

原图

r=5 的结果图

r=15 的结果图

r=30 的结果图

r=80 的结果图

r=230 的结果图

实验收获、心得及建议:

在频域空间,图像的信息表现为不同频率分量的组合。如果能让某个范围内的分量或某些频率的分量受到抑制而让其他分量不受影响,就可以输出图的频率分布,达到不同的增强目的。

频域空间的增强方法有三个步骤:

1、将图像从图像空间转换到频域空间; 2、在频域空间对图像进行增强; 3、将增强后的图像再从频域空间转换到图像空间; 本次试验中在 FFT 变换前后,将各点数乘以-1 的(x+y)次方,是为了将图像处理后它的中低频数据处于图像中央位置。

频率域图像处理是把图像看成一种二维信号,对其进行基于二维傅里叶变化的信号增强;空间域图像增强的方法是直接对图像中的像素进行处理的过程。

实验名称 图像去噪 实验类型 验证型 实验时间 2015/6/9 实验地点 基础实验楼北 501 实验目的:

1.熟悉图像高斯噪声的特点; 2.掌握利用中值滤波器去除图像噪声的方法。

仪器、设备名称:

PC 微机一台、MATLAB 软件、GIF 格式图片一张。

实验要求及注意事项:

在选择图片时应当选择 TTF 格式或者 GIF 格式的图片,若不是这种格式则应该在画图工具中改为上述格式,因为其他格式都打不开。

实验内容、操作步骤:

实验内容:

编写代码实现中值滤波算法,并观察增强效果。

操作步骤:

1.打开 Matlab 编程环境。

2.利用’imread’ 函数读入包含噪声的原始图像数据。

3.利用’imshow’ 显示所读入的图像数据。

4.编写代码实现中值滤波算法,并对原始噪声图像进行滤波处理。

5.利用’imshow’ 显示处理结果图像数据。

6.利用’imwrite’函数保存图像处理结果数据。

实验结果分析(含数据、图表整理):

程序源代码:

I1=imread(“D:tfYUAN.jpg”);

I3=rgb2gray(I1);I2=imnoise(I3,“salt & pepper”,0.02);subplot(1,2,1);

imshow(I2);

title(“jia zao yin”);

L=medfilt2(I2);

subplot(1,2,2);

imshow(L);

title(“ 中值滤波所得图像”);处理结果:

去噪声后的图像对比

实验收获、心得及建议:

噪声是常见的退化因素之一,也是图像恢复中重点研究的主要内容。图像中的噪声可定义为图像中不希望有的部分,或图像中不需要的部分。

中值滤波算法处理速度快。均值滤波对一个像素,取其周围的像素均值作为当前像素的值;中值滤波对一个像素,取其周围的像素的中间值作为当前像素的值,不需要求出均值,因此中值滤波算法较快。先得到图像的频率空间,然后对得到的二维空间数据进行比较得到最大值和最小值,求这两个值的平均值得到。它比中值滤波算法慢。

本次实验中,通过相关软件自带函数对图像进行处理,实现图像噪点的处理。

实验名称 Matlab 在数字图像处理中的应用

实验类型 验证行 实验时间 2015/6/16 实验地点 基础实验楼北 501 室 实验目的:

1.熟悉图像的四种类型。

2.熟练掌握图像的读、写操作以及显示方法。

3.熟悉图像的类型转换以及格式转换。

仪器、设备名称:

计算机、MATLAB 软件、《图像处理实验指导(电子版)》、MATLAB 相关书籍 实验要求及注意事项:

1、注意在 Matlab 中不同图像对应的格式。在 Matlab 中采用 4 种不同的方式把图像数据矩阵中的元素值(又称像素值)解释为对应像素的颜色。

2、使用 Matlab 中自带的函数可以实现不同格式的图像的格式间的转换。要熟悉相应的函数的使用参数。

实验内容、过程记录:

1.利用 imread()函数分别读取四种类型的图像。

2.读取一幅 RGB 图片,并将它转换成其他几种图像类型。

3.读取一幅 TIF 格式的图像,将它转换成 JPG 文件格式,并尝试使用不同的压缩品质(使用 help imwrite 查询其‘quality’参数的用法)压缩文件,比较压缩前后文件的大小和图像质量。

4(选做).读取一幅索引图像,将图像显示出来。尝试修改 MAP 颜色矩阵的值,再将图像显示出来,对比观察图像颜色的变化。

实验分析结果(含数据、图表整理):

程序源代码:

function dutu

I=imread(“C: ABCDEFG-------TF tf tf.jpg”);

subplot(2,2,1),imshow(I);

B title(“RGB 原图 ”);

A=dither(I,gray);

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

title(“ 索引图 ”);

imwrite(A ,“suoyin.tif”,“tif”);

B=rgb2gray(I);

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

title(“ 灰度图 ”);

imwrite(B,“huidu.tif”,“tif”);

C=im2bw(I,0.4);

subplot(2,2,4),imshow(C);

title(“ 二值图 ”);

imwrite(C,“erzhi.tif”,“tif”);

end

function gaitu

clc

clear

I=imread(“C: ABCDEFG-------TF tff.tif”);

subplot(2,2,1),imshow(I);

title(“ TF1.tif”);

imwrite(I,“TF1.jpg”,“jpg”);

B=imread(“C: ABCDEFG-------TF TF1.jpg”);

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

title(“TF1.jpg”);

imwrite(I,“TF1(25).jpg”,“quality”,25);

C=imread(“C: ABCDEFG-------TF TF1(25).jpg”);

subplo t(2,2,3),imshow(C);

title(“TF1(25).jpg”);

imwrite(I,“TF1(50).jpg”,“quality”,50);

D=imread(“C: ABCDEFG-------TF TF1(50).jpg”);

subplot(2,2,4),imshow(D);

title(“TF1(50).jpg”);

end

1、图像格式间的转换 结果见下图

图 1 图像格式转换结果图 使用 imread 函数读入一张 RGB 图像,然后使用“dither”、“rgb2gray”、“im2bw”函数实现 RGB 图像向索引图像、灰度图像、二值图像的转换。图像结果使用“imwrite”函数进行保存。

2.读取一幅 TIF 格式的图像,将它转换成 JPG 文件格式

图 2 tif 格式转换为 jpg 格式结果 使 用 imwrite 函 数 使 “tif” 格 式 转 换 为 “jpg” 格 式,然 后 使 用 “ imwrite(I,“TF1(25).jpg”,“quality”,25)”和“imwrite(I,“TF1(50).jpg”,“quality”,50)”使图像分别以 25 和 50 的质量进行压缩保存。

实验收获、心得及建议:

实验中主要注意的时使用函数时,要与函数要求的格式相对应。处理不同类型的图像,所使用的函数语句是不一样的,对于结果的显示也会有所不同。有时图像的改变在显示时改变的迹象可能不太明显,这时可以通过查看图像的格式,具体的属性参数直观的看到改动。

篇3:遥感数字图像处理课程实验综述

目前, 随着遥感技术的快速发展以及遥感和GIS的一体化在各个行业中的应用, 遥感已经走向全面应用的阶段[1]。现在, 好多高校都建立了遥感专业, 遥感数字图像处理是学习遥感软件应用的一门基础课[2]。这门课包含了课内实验, 通过课内实验学生可以使学生对课上讲的理论知识有更深的理解并且可以掌握一种遥感软件的操作方法, 为以后的学习打下坚实的基础。因此, 探讨该课程的实验教学对提高遥感数字图像的处理水平有十分重要的意义[3,4]。

ENVI (The Environment for Visualizing Images) 是美国ITT公司生产的一套系统软件, 包含了遥感数字图像处理的所有功能, 并且支持多种操作系统[5], 并且它可以和Arc GIS10和Arc GIS9.3完全兼容。用户在Arc GIS Toolbox中可以直接使用ENVI功能。所以很多高校都选择ENVI作为遥感数字图像处理实验课程的软件。

2 实验目的

2.1 遥感图像的几何精校正

遥感图像的几何校正包括系统几何纠正、投影变形纠正和几何精纠正, 系统几何纠正和投影变形纠正一般不需要用户进行, 而几何精纠正一般由用户根据不同的精度要求来完成。遥感图像的几何精纠正主要解决遥感图像和地图投影之间的匹配, 只有进行图像之间的空间匹配, 才能保证不同图像之间的几何一致性[6]。遥感图像在进行纠正后才能对图像进行分析并制作出满足要求的各类遥感专题图。

2.2 实验的内容和步骤

在本实验中, 一幅非校正遥感影像的纠正工作是利用已经过精纠正后的遥感影像来完成的。例如, 我们可以用已经纠正过得SPOT图像来对Landsat TM图像进行校正。

在进行校正时, 首先打开需要进行纠正的遥感图像--Landsat TM图像。图像配准使用Image to Image对话框。在对话框中, 把SPOT影像作为基准影像。把TM影像作为需要纠正的影像, 在进行地面的控制点选择时, 需要选择的控制点需在两张图上都存在。为了提高精度, 控制点一般选择河流和道路的交叉点或者建筑物的拐角点。在两张图上找到同名地物点, 把找到的同名地物点即地面控制点添加到列表。影像配准中所用到的Image to Image GCP List对话框如图1所示。选择的地面控制点在超过4个时就会显示RMS误差。如果在选择的控制点中, 某点的误差很大, 可以删除该点并重新进行添加。如果选择的地面控制点符合要求, 则对控制点信息进行保存并配准。

配准完成后, 就可以对TM影像中的所有波段进行纠正。在Ground Control Points Selection对话框中, 选择Options→Warp Displayed Band, 输入要纠正的波段。ENVI提供了三种几何纠正模型:RST (仿射变换) 、Polynomial (多项式) 和Delaunay Triangulation (局部三角网) 。重采样方法 (Resampling) 有三种:Nearest Neighbor (最邻近法) 、Bilinear interpolation (双线性内插法) 、Cubic Convolution (三次卷积法) 。在Registration Parameters (参数配准) 对话框中的Warp Method (纠正模型) 按钮菜单中选择几何纠正模型, 在Resampling (重采样方法) 的按钮菜单中选择要用到的重采样法, 即可对所选的波段进行纠正, 如图2所示。对波段的纠正可以选择采用不同的纠正模型和不同的重采样方法进行纠正。

3 小结

通过遥感图像的几何精纠正实验的学习, 加强了学生运用ENVI软件的动手能力和解决实际问题的能力。通过本实验学生对图像几何精纠正的含义有了更深的了解, 熟练掌握了运用几种常用的几何纠正模型和重采样对遥感波段进行几何纠正, 为学生今后对软件的深入学习打下了坚实的基础。

摘要:遥感数字图像处理是地理信息系统专业的一门必修课程, 该课程的学习效果对于掌握遥感技术的基本原理和方法具有十分重要的意义。几何精纠正是遥感图像处理之前一定要进行的工作。针对当前遥感数字图像处理课程的实验教学现状, 利用遥感图像处理软件ENVI对遥感图像进行几何精纠正是非常重要的实验内容。

关键词:遥感影像,ENVI,图像处理,纠正

参考文献

[1]陈锋锐, 乔家君, 闰卫阳, 张喜旺, 杨玲.“遥感数字图像处理”教学改革初探[J].计算机时代, 2013 (6) :67-68.

[2]刘春国, 韩瑞梅, 卢晓峰.遥感专业《数字图像处理》课程教学探讨[J].地理空间信息, 2012 (3) :180-182.

[3]贺东霞, 李竹林, 王静.浅谈数字图像处理的应用与发展趋势[J].延安大学学报:自然科学版, 2013 (4) :18-21.

[4]戚鹏程, 郭广猛, 潘竟虎.遥感数字图像处理课程教学模式的构建[J].测绘科学, 2012 (3) :194-196.

[5]武艺, 文先华.利用ENVI软件处理遥感影像[J].科技信息, 2011 (16) :772-773.

篇4:数字图像处理实验平台的设计

关键词: 数字图像处理    实验平台    Matlab    GUI

数字图像处理是信息科学中一个发展迅速的研究方向,是模式识别、计算机视觉、图像通讯、多媒体技术等学科的基础,是一门涉及多领域的交叉学科,具有很强的理论性和实践性[1]。该课程的主要任务是通过对数字图像处理基本概念、理论和算法的学习,培养学生对数字图像的实践编程处理能力,为学生从事图像处理工程师工作奠定基础。该课程涉及内容比较宽广,课程起点高,难度系数较大,如何在教学过程中提高学生的学习兴趣和后续实践能力一直是该课程研究的重点[2]。

为促使学生更深入地学习数字图像处理课程,在学习过程中更熟练地掌握数字图像处理的基本理论和基本方法,并有效提高学生的实践动手能力和创新能力。本文利用Matlab的图形用户界面环境(GUI)设计了一个数字图像处理实验平台。该实验平台采用模块化设计的方式,通过对窗口及控件的控制函数的设计,较好地实现数字图像处理算法一体化集成的功能。通过该平台可以实现助教、助学、实践创新及考核等功能,帮助学生理解和掌握数字图像处理的基本技能。

1.数字图像处理实验平台的总体设计

数字图像处理实验平台总体设计如图1所示,在该实验平台上主要集中了数字图像处理中常用的基本操作及算法,通过该平台的窗口界面对象操作就能够实现相应的数字图像处理功能,主要操作包括文件对象操作、图像格式转换、直方图修正、图像转置、图像旋转、空间域图像滤波、灰度图像二值化处理、图像边缘检测、图像变换操作、图像代数运算、亮度对比度调节、图像缩放操作和形态学操作等。该平台可以操作者提供了一个方便快捷的数字图像处理实践环境,适合实现对数字图像进行基本处理[3]。

2.实验平台界面的设计

在数字图像处理系统实验平台的设计过程中,主要利用Matlab提供的GUI向导设计控件而完成,图形用户界面包含的图形对象有图形窗口、菜单、控件、文本等,本文设计改变传统的菜单式设计,将所有的图像处理操作采用窗口或控件的方式直接放于平台窗口界面上。设计时在GUIDE开发环境中设计好GUI后会自动生成相应的FIG文件和M文件,其中在FIG文件中实现数字图像处理窗口界面,包括有图像界面窗口和静态界面中所有序列化的图形对象[4][5]。根据数字图像处理系统的系统框图,将要实现的功能全部集中体现在界面上,进行合理布局,界面设计结果如图2所示:

3.实验平台的模块功能实现

在各平台模块功能实现中,我们主要通过对界面上的相应控件对象编写回调函数,激活相应控件以实现图像处理功能,在GUIDE开发环境中自动生成的M文件中包括界面窗口中自动生成的函数框架、控制函数及自定义图形对象的回调函数。例如在文件操作模块中,设计了载入图像、保存图像、撤销、退出的触控按钮。在设计时,载入图像时采用对话框的方式,uigetfile函数显示一个对话框用选择图像,当前路径下的文件和目录将在带对话框内显示[8];保存图像触控按钮的实现主要应用uiputfile()标准写盘处理对话框实现,将处理后的图像写入相应路径下的磁盘中;撤销操作是指对当前对象的上一步操作的取消,图像的处理后显示区显示的是原始图像;退出即退出当前操作界面;其他模块的设计方式类似。

如图3所示,我们对输入的lena图像进行了边缘检测,采用的边缘检测算子为canny算子,在图形输出窗口直接看到的输出结果,如果想要改变算子就可以直接点击不同的算子按钮即可实现图像处理。通过验证该实验平台的控件选择方式比菜单式的数字图像处理平台更直观、方便,可以实现教学演示、实训练习等,帮助学生更深入理解和掌握数字图像处理课程的基本知识。

4.结语

本文基于MatlabGUI实现了一个数字图像处理实验平台,该平台将数字图像处理基本算法集成于一个界面中,所有功能实现通过点击界面中相应的控件完成,部分操作还可以自定义参数,经处理的图像能够直观、形象地展示在数字图像处理实验平台上。该平台使得数字图像处理的教学过程更方便、直观,对学生学习了解数字图像处理具有一定的辅助作用,同时也可将该平台应用于学生实践创新能力的培养。

参考文献:

[1]史彩娟,刘利平,李志刚.“数字图像处理”课程多层次实践教学体系研究[J].中国电力教育,2014,(307):133-134.

[2]杨淑莹,张桦."数字图像处理"教学软件的开发设计[J].天津师范大学学报,2009,(4):76-80.

[3]梁原.基于MATLAB的数字图像处理系统研究[D].长春理工大学.2008.

[4]陈超等编著.MATLAB应用实例精讲-图像处理与GUI设计篇[M].北京:电子工业出版社,2011.

[5]邢文博,蒋敬.基于Matlab开发数字图像处理GUI[J],电气电子教学学报,2013,35(6):107-108.

篇5:数字图像处理实验报告

主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.

具体要求如下:

1.编程实现图像平移,要求平移后的图像大小不变;

2.编程实现图像的镜像;

3.编程实现图像的转置;

4.编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实

现,并比较两种方法的缩放效果;

5.编程实现以任意角度对图像进行旋转变换,要求分别用双线性插值和最近邻插

值两种方法来实现,并比较两种方法的旋转效果.

二.实验目的和意义:

本实验的目的是使学生熟悉并掌握图像处理编程环境,掌握图像平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图像文件的读、写操作,及图像平移、镜像、转置和旋转等几何变换的程序实现.

三.实验原理与主要框架:

3.1 实验所用编程环境:

Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开发工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的Windows应用程序和Web应用程序.

VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软基础类库(MFC)和活动模板类库(ATL),因此它是软件开发人员不可多得的开发工具.

VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于VC具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具.

在本程序的开发过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的体现和灵活的应用.

3.2 实验处理的对象:256色的BMP(BIT MAP )格式图像

BMP(BIT MAP )位图的文件结构:

具体组成图: BITMAPFILEHEADER

位图文件头

(只用于BMP文件) bfType=”BM” bfSize bfReserved1

bfReserved2

bfOffBits

biSize

biWidth

biHeight

biPlanes

biBitCount

biCompression

biSizeImage

biXPelsPerMeter

biYPelsPerMeter

biClrUsed

biClrImportant

单色DIB有2个表项

16色DIB有16个表项或更少

256色DIB有256个表项或更少

真彩色DIB没有调色板

每个表项长度为4字节(32位)

像素按照每行每列的顺序排列

每一行的字节数必须是4的整数

倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIB Pixels DIB图像数据

1. BMP文件组成

BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成.

2. BMP文件头

BMP文件头数据结构含有BMP文件的类型(必须为BMP)、文件大小(以字节为单位)、位图文件保留字(必须为0)和位图起始位置(以相对于位图

文件头的偏移量表示)等信息.

3. 位图信息头

BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小

以字节为单位, 水平和垂直分辨率以每米像素数为单位) ,目标设备的级别,每个像素所需的位数, 位图压缩类型(必须是 0)等信息.

4. 颜色表

颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD

类型的结构,定义一种颜色.具体包含蓝色、红色、绿色的亮度(值范围为0-255)

位图信息头和颜色表组成位图信息

5. 位图数据

位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描

行之间是从下到上.

Windows规定一个扫描行所占的字节数必须是 4的倍数(即以long为单位),不足的以0填充.

3.3 BMP(BIT MAP )位图的显示:

①一般显示方法:

1. 申请内存空间用于存放位图文件

2. 位图文件读入所申请内存空间中

3. 在函数中用创建显示用位图, 用函数创建兼容DC,用函数选择显示删除位图

但以上方法的缺点是: 1)显示速度慢; 2) 内存占用大; 3) 位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决); 4) 在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.

②BMP位图缩放显示 :

用视频函数来显示位图,内存占用少,速度快,而且还可以对图形进行淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图像所用颜色要少的设备上显示彩色图像.BMP位图显示方法如下:

1. 打开视频函数,一般放在在构造函数中

2. 申请内存空间用于存放位图文件

3. 位图文件读入所申请内存空间中

4. 在 函数中 显示位图

5. 关闭视频函数 ,一般放在在析构函数中

以上方法的优点是: 1)显示速度快; 2) 内存占用少; 3) 缩放显示时图形失真小,4) 在低颜色位数的设备上显示高颜色位数的图形图形时失真小; 5) 通过直接处理位图数据,可以制作简单动画.

3.4 程序中用到的访问函数

Windows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:

1. SetDIBitsToDevice函数:该函数可以直接在显示器或打印机上显示DIB. 在显

示时不进行缩放处理.

2. StretchDIBits函数:该函数可以缩放显示DIB于显示器和打印机上.

3. GetDIBits函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,

可以对DIB的格式进行控制,可以指定每个像素颜色的位数,而且可以指定是否进行压缩.

4. CreateDIBitmap函数:利用该函数可以从DIB出发来创建GDI位图.

5. CreateDIBSection函数:该函数能创建一种特殊的DIB,称为DIB项,然后返回

一个GDI位图句柄.

6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB

句柄.

7. DrawDibDraw函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该

组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits的函数.它的最主要的优点是可以使用抖动颜色,并且提高显示DIB的速度,缺点是必须将VFW代码连接到进程中.

3.5 图像的几何变换

篇6:图形图像处理实验报告

数字图像处理,就是用数字计算机及其他有关数字技术,对图像进行处理,以达到预期的目的。随着计算机的发展,图像处理技术在许多领域得到了广泛应用,数字图像处理已成为电子信息、通信、计算机、自动化、信号处理等专业的重要课程。

数字图像处理课程设计是在完成数字图像处理的相关理论的学习后,进行的综合性训练课程,其目的主要包括:

1、使学生进一步巩固数字图像处理的基本概念、理论、分析方法和实现方法;

2、增强学生应用VC++编写数字图像处理的应用程序及分析、解决实际问题的能力;

3、尝试将所学的内容解决实际工程问题,培养学生的工程实践能力,提高工科学生的就业能力。

三.设计内容: 1.打开图像: 主要代码:

static char szFilter[]=“BMP文件(*.bmp)|*.bmp||”;//定义过滤文件的类型

CString filename;

int ret=dlg.DoModal();//运行打开文件对方框

if(ret==IDOK)

{

filename=dlg.GetFileName();

//获取所选择图像的路径

m_dib.LoadFromFile(filename);

//加载图像

if(!m_dib.m_bLoaded)

//判断是否加载图像成功

{ AfxMessageBox(“图像打不开”);

} return;

CFileDialog dlg(TRUE,“bmp”,NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);//定义文件对话框对

效果图:

2.水平镜像:把图像的第一列和最后一列调转,第二列和倒数第二列换过来,以此类推下去,直到第nw/2为止。代码: int temp,i,j;

for(j=0;j

for(i=0;i

{

temp=m_dib.m_pdata[j*nw+i];

m_dib.m_pdata[j*nw+i]=m_dib.m_pdata[nw-i-1+j*nw];

m_dib.m_pdata[nw-i-1+j*nw]=temp;

} 效果图:

3.素描风格:先把灰度值与右下的作对比,如果差值大于一个值则说明这是轮廓,先把非轮廓的位置像素置为黑色,最后对所有像素进行底片化处理 代码: int temp,i,j;

for(j=0;j

for(i=0;i

{

temp=m_dib.m_pdata[j*nw+i]-m_dib.m_pdata[(j+1)*nw+i+1];

} if(temp<10)m_dib.m_pdata[j*nw+i]=0;

//黑色为0

for(j=0;j

for(i=0;i

{

int gray=m_dib.m_pdata[j*nw+i];

m_dib.m_pdata[j*nw+i]=255-gray;

}

图:

4图像雾化:在图像中引入一定的随机值,打乱图像中的像素值

代码:

int i,j,k,dat;

//i表示列,j表行

byte *ptemp=(byte *)new byte[nw*nh];

memset(ptemp,0,nw*nh);

for(j=0;j

for(i=0;i

{

k=rand()%8;//取任意的随机值

dat=j*nw+i+k;if(dat>=nw*nh)dat=nw*nh-1;ptemp[j*nw+i]=m_dib.m_pdata[dat];

} memcpy(m_dib.m_pdata,ptemp,nw*nh);效果图:

5.浮雕处理:通过勾画图象轮廓和降低周围像素色值,从而生成具有凹凸感的浮雕效果。其方法是生成一缓冲区,计算当前像素的左上角与右下角的像素值之差,再加上一个补值。将其存储到缓冲区。再将缓冲区的数据逐点替换到图像中并显示出来。代码:

int w=3,i,j;

//w为模板宽度

BYTE *p=new BYTE[nw*nh];

memcpy(p,m_dib.m_pdata,nw*nh);

for(j=w/2;j

for(i= w/2;i

{

p[j*nw+i]=m_dib.m_pdata[(j-1)*nw+i-1]*(1)+m_dib.m_pdata[(j+1)*nw+i+1]*(-1)+120;

}

memcpy(m_dib.m_pdata,p,nw*nh);

delete []p;效果图:

6.直方图均衡化 代码:

int n[256]={0},g[256]={0};//定义频数数组n,均衡化每个像素的灰度级的数组g

double f[256],t[256];//定义频率数组f,累加的频率数组t

int g_max=0,g_mim=255;

int i,j,k,z;

for(j=0;j

//统计灰度级的频数n for(i=0;i

z=m_dib.m_pdata[j*nw+i];

n[z]++;

}

for(k=0;k<=255;k++)

//统计每个灰度级出现的频率

f[k]=n[k]/(nw*nh*1.0);

//累计灰度级的频率

t[0]=f[0];for(k=1;k<=255;k++)

t[k]=t[k-1]+f[k];

for(j=0;j

for(i=0;i

g_max=w>g_max?w:g_max;//得到最大值

g_mim=w

}

for(k=0;k<=255;k++)

//利用公式求每个像素均衡化后的灰度级

g[k]=(int)((g_max-g_mim)*t[k]+g_mim+0.5);

for(j=0;j

//逐个替换

for(i=0;i

k=m_dib.m_pdata[j*nw+i];

m_dib.m_pdata[j*nw+i]=g[k];

}

for(j=0;j

//计算均衡化的直方图

{

//绘制原图像的直方图

for(i=0;i

{

BYTE temp=m_dib.m_pdata[j*nw+i];

m_hist[temp]++;} m_bHist=true;

CString str;int nh=m_dib.GetDIBHeight();int i;// 画坐标轴

// 绘制坐标轴

pDC->MoveTo(410,nh+20);//(410,nh+20)是直方图的左上角坐标

// 垂直轴

pDC->LineTo(410,nh+200);//(410,nh+200)是直方图的左下角坐标

// 水平轴

pDC->LineTo(710,nh+200);//(710,nh+200)是直方图的右下角坐标

// 写X轴刻度值

str.Format(“0”);pDC->TextOut(410, nh+200+10, str);str.Format(“50”);pDC->TextOut(460, nh+200+10, str);str.Format(“100”);pDC->TextOut(510, nh+200+10, str);str.Format(“150”);pDC->TextOut(560, nh+200+10, str);str.Format(“200”);pDC->TextOut(610, nh+200+10, str);str.Format(“255”);pDC->TextOut(665, nh+200+10, str);// 绘制X轴刻度 for(i = 0;i < 256;i += 25){

if((i & 1)== 0){

} // 10的倍数

pDC->MoveTo(i + 10, nh+200-2);pDC->LineTo(i + 10, nh+200+2);

}

else {

} // 10的倍数

pDC->MoveTo(i + 10, nh+200-2);pDC->LineTo(i + 10, nh+200+2);} // 绘制X轴箭头

pDC->MoveTo(705,nh+200-5);pDC->LineTo(710,nh+200);pDC->LineTo(705,nh+200+5);// 绘制y轴箭头

pDC->MoveTo(410,nh+20);pDC->LineTo(405,nh+20+5);pDC->MoveTo(410,nh+20);pDC->LineTo(415,nh+20+5);int max=0;for(i=0;i<256;i++)if(m_yuan[i]>max){

} max=m_yuan[i];

for(i=0;i<256;i++)pDC->MoveTo(410+i,nh+200);pDC->LineTo(410+i,nh+200-(m_yuan[i]*160/max));} if(m_bHist==true)//绘画新的直方图 {

CString str;int nh=m_dib.GetDIBHeight();int i;// 画坐标轴 // 绘制坐标轴

pDC->MoveTo(10,nh+20);//(10,nh+20)是直方图的左上角坐标

// 垂直轴

pDC->LineTo(10,nh+200);//(10,nh+200)是直方图的左下角坐标

// 水平轴

pDC->LineTo(310,nh+200);//(310,nh+200)是直方图的右下角坐标

// 写X轴刻度值 str.Format(“0”);

pDC->TextOut(10, nh+200+10, str);str.Format(“50”);pDC->TextOut(60, nh+200+10, str);str.Format(“100”);pDC->TextOut(110, nh+200+10, str);str.Format(“150”);pDC->TextOut(160, nh+200+10, str);str.Format(“200”);pDC->TextOut(210, nh+200+10, str);str.Format(“255”);pDC->TextOut(265, nh+200+10, str);// 绘制X轴刻度 for(i = 0;i < 256;i += 25){

if((i & 1)== 0){ // 10的倍数

} else {

// 10的倍数

pDC->MoveTo(i + 10, nh+200-2);pDC->LineTo(i + 10, nh+200+2);pDC->MoveTo(i + 10, nh+200-2);pDC->LineTo(i + 10, nh+200+2);} } // 绘制X轴箭头

pDC->MoveTo(305,nh+200-5);pDC->LineTo(310,nh+200);pDC->LineTo(305,nh+200+5);// 绘制y轴箭头 pDC->MoveTo(10,nh+20);pDC->LineTo(5,nh+20+5);pDC->MoveTo(10,nh+20);pDC->LineTo(15,nh+20+5);int max=0;for(i=0;i<256;i++)if(m_hist[i]>max){ max=m_hist[i];

for(i=0;i<256;i++)pDC->MoveTo(10+i,nh+200);pDC->LineTo(10+i,nh+200-(m_hist[i]*160/max));

} } 效果图:

四.心得体会:

通过这次数字图像处理的课程设计,对图片有了更深一层的认识,理解了对图像处理的一些原理,在这个课程设计过程中,需要自己去查阅资料,找资料,还需要理解所找到的资料,遇到问题独立去思考,或者去请教同学,给了我一个很好的锻炼机会,做事情一定要坚持,最后一定会有收获的。

五.参考文献:

《数字图像处理》 ——电子工业出版社

上一篇:迎春花开,书香满园下一篇:典型议论文精选:褒贬之战