基于Matlab GUI的数字图像处理实验平台设计
   来源:现代电子技术     2021年01月22日 12:05

张鑫+吴娱+平子良+丁启兰+金小溪

摘 要: 数字图像处理涉及面广,实用性强的特点,而现有的数字图像处理实验平台体系结构复杂,不适合初学者学习,缺少紧扣教材的实验系统,学生很难深入理解数字图像处理的技术原理。在此采用Matlab的图形用户界面环境(GUI)设计,研制开发了相应的实验教学平台,其涵盖了数字图像处理中的几何变换、图像增强、图像平滑、边缘与分割、假彩色编码等内容。该实验平台界面友好,具有较强的可移植性和可扩展性,可以帮助学生更切实地掌握有关数字图像处理的内容。

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

中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2014)18?0006?03

Design digital image processing experimental platform based on Matlab GUI

ZHANG Xin, WU Yu, PING Zi?liang, DING Qi?lan, JIN Xiao?xi

(Century College, Beijing University of Posts and Telecommunications, Beijing 102101, China)

Abstract: According to the characteristics of digital image processing, the architecture of existing digital image processing experimental platform is too complex to be appropriate for abecedarian to learn. For lack of the experimental platform which is close to teaching material, students understand the theory of digital image processing hardly. A corresponding experimental platform was designed and developed by graphic user interface (GUI) of Matlab. It includes image geometric transformation, enhancement, smoothing, edge, segmentation and false color encoding in the process of digital image processing. This experimental platform has friendly interface, high portability and scalability, and can help students understand the content of the digital image processing profoundly.

Keywords: digital image processing; Matlab; GUI; experimental platform

0 引 言

《数字图像处理》是电子信息类专业非常重要的专业课[1]。目前对该门课程的安排,各院校一般都是理论教学与实验教学相结合[2],学生通过上机实验,提高动手编程能力,增进对数字图像处理流程的认识,加深对数字图像处理理论知识的理解。在实验教学中,各高校通常采用Matlab,VC++软件等进行编程,由于缺少紧扣教材的实验系统,学生很难深入理解数字图像处理的技术原理[3]。

基于上述分析,为便于学生系统、全面的掌握该门课程的基本原理和经典算法,本文利用Matlab软件创建数字图像处理实验教学平台的用户图形界面(GUI),开发了一个针对教学的可视化、系统化“数字图像处理实验教学”软件,为学生提供一个数字图像处理技术的算法演示及模拟开发的GUI平台,帮助学生掌握数字图像处理的基本原理和内容,熟悉并消化图像处理的技术方法,了解图像处理的较新研究领域。利用软件Matlab平台建设了一个集良好的可视化、开放性、交互性于一体的数字图像处理实验教学平台。

1 实验平台的总体设计

本文利用Matlab的GUI来设计人机交互的图形用户界面[4],设有图像显示坐标轴、下拉菜单、按钮等功能来完成不同功能模块的实现和函数的调用。

1.1 实验平台总体结构

该实验平台以北京邮电大学世纪学院《数字图像处理》这门课程的内容为基本点,结合实验教学的课时安排,按照图像处理技术实验教学的特点来设计该实验平台系统的整体框架[5]。

该实验平台具体框图如图1 所示。

图1 基于Matlab GUI的数字图像处理实验平台系统结构图

此实验平台的主界面采用Matlab GUI菜单项设计,在主界面中点击任一子模块,就可打开相应子模块界面,具体界面实现如图2所示。

图2 实验平台主界面设计图

该实验平台主要包括图像处理中的几何变换、图像增强、图像平滑、边缘与分割、假彩色编码等模块内容,其中,几何变换模块主要包含了图像平移、图像镜像、图像旋转、图像错切、比例缩放、复合变换等功能;图像增强由线性变换、行对数变换、直方图均衡化、直方图规定化、索引/二值图像等5个功能块组成;图像平滑主要包括模拟噪声生成、邻域平均、中值滤波、巴特沃斯低通滤波、指数型低通滤波、梯形低通滤波、Sobel 算子滤波、空域高通滤波等功能模块;边缘与分割分为图像分割、Hough变换、边缘检测等3个模块;假彩色编码包括RGB空间伪彩色编码、灰度彩色变换法编码和频率伪彩色编码等三个功能模块。

1.2 功能设计

图像的几何变换是指图像处理中对图像平移、旋转、放大和缩小[6]这些简单变换以及变换中灰度内插处理等。图3所示为在图像几何变换模块中,对选定图像进行复合变换的效果图。该复合变换式将原有图像向下平移50像素,向右平移50像素,并用白色填充空白部分,再对其做垂直镜像,然后旋转30°。该变换的主要代码如下:

B(50+1:H(1),50+1:H(2),1:H(3))=I(1:H(1)?50,

1:H(2)?50,1:H(3));

C(1:H(1),1:H(2),1:H(3))=B(H(1):?1:1,

1:H(2),1:H(3));

D=imrotate(C,30,′nearest′);

图3 几何变换中的复合变换效果图

图4所示为图像增强功能模块中的灰度图像线性变换子模块处理界面,该模块不仅可以处理灰度图像,还可处理彩色图像。在选择该算法时,实验平台会先判断输图像是否为灰度图像,若是,则直接处理图像,若不是,则会先彩色图像转换为灰度图像,再做后续处理。其m文件部分代码如下:

axes(handles.axes_dst) ;

d = length(size(img_src));

if d==3

image=rgb2gray(img_src);

elseif d==2

image=img_src;

end

J=imadjust(image,[0.15 0.5],[0 1]);

imshow(J);title(′线性变换后的灰度图′);

axes(handles.axes_srcl) ;

imhist(image);title(′原灰度直方图′);

axes(handles.axes_dstl) ;

imhist(J);title(′线性变换后的灰度直方图′);

setappdata(handles.figure_zengqiang,′bChanged′,true);

set(handles.srcl_save,′Enable′,′on′);

set(handles.dstl_save,′Enable′,′on′);

图5所示为图像边缘检测模块界面,该界面可同时显示三种不同算子实现图像边缘检测的效果图及原图,以便学生在实验的过程中进行直观对比。其主要代码如下:

BW1=edge(image,′sobel′,0.1);

BW2=edge(image,′roberts′,0.1);

BW4=edge(image,′log′,0.01);

图4 灰度图像线性变换子模块处理界面

图5 图像边缘检测模块界面

2 实验平台的特点

基于Matlab GUI数字图像处理实验平台具有以下特点:

(1) 内容丰富,涵盖图像处理领域的大部分内容,具有很强的可移植性和可扩展性,可在教学的过程中有目的性的进行更改,增删不同的功能模块,以便达到更好的教学效果。

(2) 界面友好,方便操作[7],可在同一界面同时显示处理前和处理后的图像。对于某些需要确定参数的算法,该实验平台上设置了不同的初始参数值,学生也可以自己动手调节参数值。针对同一数字图像处理算法,该实验平台课可同时展示三种不同参数的处理效果,通过比较不同参数条件下的图像处理效果,使学生理解有关参数变化对处理结果的影响。

(3) 教师在教学过程中,可以方便地演示图像处理的某一内容的处理结果,在进行理论教学的同时使学生知道该处理对图像的影响,从而加深学生对该理论和内容的理解。

(4) 通过该实验平台仿真试验可选出最佳的处理方法、步骤和参数设置,然后再编写程序,从而有针对性的对算法加以改进,减少了学生对同一图像处理过程的不同处理方法的重复编程时间,便于学生对有关算法进行改进或创新。

3 结 语

针对北京邮电大学世纪学院《数字图像处理》实践教学的现状,设计实现了基于Matlab GUI的数字图像处理实验平台。该实验平台用户界面友好,交互性强,可拓展性好。根据我院信息类不同专业的教学特点,在教学的过程中,可自行修改模块设置,增删特色模块,使学生对数字图像处理的相关理论有比较深刻的理解,从而提升《数字图像处理》课程的实践教学效果。

参考文献

[1] 张颖颖,黄义定,王红娟.关于“数字图像处理”实验的任务模块化教学模式的探索[J].实验室科学,2012(6):52?54.

[2] 安平,王朔中.建立在Matlab平台上的数字图像处理教学实验系统[J].实验室研究与探索,2001(1):61?62.

[3] 王帆,刘慧.基于Matlab GUI的数字图像处理实验平台设计[J].中国科技信息,2011(7):124?125.

[4] 陈壵光.精通Matlab GUI设计[M].北京:电子工业出版社,2008.

[5] 杨顺辽,李泽军.基于Visual C++的数字图像处理实验软件开发[J].国土资源高等职业教育研究,2011(7):25?28.

[6] 张德丰.数字图像处理:Matlab版[M].北京:人民邮电出版社,2009.

[7] 南洋,周静,孟开元,等.基于Matlab的GUI的界面设计[J].石油仪器,2008(12):76?78.

1.2 功能设计

图像的几何变换是指图像处理中对图像平移、旋转、放大和缩小[6]这些简单变换以及变换中灰度内插处理等。图3所示为在图像几何变换模块中,对选定图像进行复合变换的效果图。该复合变换式将原有图像向下平移50像素,向右平移50像素,并用白色填充空白部分,再对其做垂直镜像,然后旋转30°。该变换的主要代码如下:

B(50+1:H(1),50+1:H(2),1:H(3))=I(1:H(1)?50,

1:H(2)?50,1:H(3));

C(1:H(1),1:H(2),1:H(3))=B(H(1):?1:1,

1:H(2),1:H(3));

D=imrotate(C,30,′nearest′);

图3 几何变换中的复合变换效果图

图4所示为图像增强功能模块中的灰度图像线性变换子模块处理界面,该模块不仅可以处理灰度图像,还可处理彩色图像。在选择该算法时,实验平台会先判断输图像是否为灰度图像,若是,则直接处理图像,若不是,则会先彩色图像转换为灰度图像,再做后续处理。其m文件部分代码如下:

axes(handles.axes_dst) ;

d = length(size(img_src));

if d==3

image=rgb2gray(img_src);

elseif d==2

image=img_src;

end

J=imadjust(image,[0.15 0.5],[0 1]);

imshow(J);title(′线性变换后的灰度图′);

axes(handles.axes_srcl) ;

imhist(image);title(′原灰度直方图′);

axes(handles.axes_dstl) ;

imhist(J);title(′线性变换后的灰度直方图′);

setappdata(handles.figure_zengqiang,′bChanged′,true);

set(handles.srcl_save,′Enable′,′on′);

set(handles.dstl_save,′Enable′,′on′);

图5所示为图像边缘检测模块界面,该界面可同时显示三种不同算子实现图像边缘检测的效果图及原图,以便学生在实验的过程中进行直观对比。其主要代码如下:

BW1=edge(image,′sobel′,0.1);

BW2=edge(image,′roberts′,0.1);

BW4=edge(image,′log′,0.01);

图4 灰度图像线性变换子模块处理界面

图5 图像边缘检测模块界面

2 实验平台的特点

基于Matlab GUI数字图像处理实验平台具有以下特点:

(1) 内容丰富,涵盖图像处理领域的大部分内容,具有很强的可移植性和可扩展性,可在教学的过程中有目的性的进行更改,增删不同的功能模块,以便达到更好的教学效果。

(2) 界面友好,方便操作[7],可在同一界面同时显示处理前和处理后的图像。对于某些需要确定参数的算法,该实验平台上设置了不同的初始参数值,学生也可以自己动手调节参数值。针对同一数字图像处理算法,该实验平台课可同时展示三种不同参数的处理效果,通过比较不同参数条件下的图像处理效果,使学生理解有关参数变化对处理结果的影响。

(3) 教师在教学过程中,可以方便地演示图像处理的某一内容的处理结果,在进行理论教学的同时使学生知道该处理对图像的影响,从而加深学生对该理论和内容的理解。

(4) 通过该实验平台仿真试验可选出最佳的处理方法、步骤和参数设置,然后再编写程序,从而有针对性的对算法加以改进,减少了学生对同一图像处理过程的不同处理方法的重复编程时间,便于学生对有关算法进行改进或创新。

3 结 语

针对北京邮电大学世纪学院《数字图像处理》实践教学的现状,设计实现了基于Matlab GUI的数字图像处理实验平台。该实验平台用户界面友好,交互性强,可拓展性好。根据我院信息类不同专业的教学特点,在教学的过程中,可自行修改模块设置,增删特色模块,使学生对数字图像处理的相关理论有比较深刻的理解,从而提升《数字图像处理》课程的实践教学效果。

参考文献

[1] 张颖颖,黄义定,王红娟.关于“数字图像处理”实验的任务模块化教学模式的探索[J].实验室科学,2012(6):52?54.

[2] 安平,王朔中.建立在Matlab平台上的数字图像处理教学实验系统[J].实验室研究与探索,2001(1):61?62.

[3] 王帆,刘慧.基于Matlab GUI的数字图像处理实验平台设计[J].中国科技信息,2011(7):124?125.

[4] 陈壵光.精通Matlab GUI设计[M].北京:电子工业出版社,2008.

[5] 杨顺辽,李泽军.基于Visual C++的数字图像处理实验软件开发[J].国土资源高等职业教育研究,2011(7):25?28.

[6] 张德丰.数字图像处理:Matlab版[M].北京:人民邮电出版社,2009.

[7] 南洋,周静,孟开元,等.基于Matlab的GUI的界面设计[J].石油仪器,2008(12):76?78.

1.2 功能设计

图像的几何变换是指图像处理中对图像平移、旋转、放大和缩小[6]这些简单变换以及变换中灰度内插处理等。图3所示为在图像几何变换模块中,对选定图像进行复合变换的效果图。该复合变换式将原有图像向下平移50像素,向右平移50像素,并用白色填充空白部分,再对其做垂直镜像,然后旋转30°。该变换的主要代码如下:

B(50+1:H(1),50+1:H(2),1:H(3))=I(1:H(1)?50,

1:H(2)?50,1:H(3));

C(1:H(1),1:H(2),1:H(3))=B(H(1):?1:1,

1:H(2),1:H(3));

D=imrotate(C,30,′nearest′);

图3 几何变换中的复合变换效果图

图4所示为图像增强功能模块中的灰度图像线性变换子模块处理界面,该模块不仅可以处理灰度图像,还可处理彩色图像。在选择该算法时,实验平台会先判断输图像是否为灰度图像,若是,则直接处理图像,若不是,则会先彩色图像转换为灰度图像,再做后续处理。其m文件部分代码如下:

axes(handles.axes_dst) ;

d = length(size(img_src));

if d==3

image=rgb2gray(img_src);

elseif d==2

image=img_src;

end

J=imadjust(image,[0.15 0.5],[0 1]);

imshow(J);title(′线性变换后的灰度图′);

axes(handles.axes_srcl) ;

imhist(image);title(′原灰度直方图′);

axes(handles.axes_dstl) ;

imhist(J);title(′线性变换后的灰度直方图′);

setappdata(handles.figure_zengqiang,′bChanged′,true);

set(handles.srcl_save,′Enable′,′on′);

set(handles.dstl_save,′Enable′,′on′);

图5所示为图像边缘检测模块界面,该界面可同时显示三种不同算子实现图像边缘检测的效果图及原图,以便学生在实验的过程中进行直观对比。其主要代码如下:

BW1=edge(image,′sobel′,0.1);

BW2=edge(image,′roberts′,0.1);

BW4=edge(image,′log′,0.01);

图4 灰度图像线性变换子模块处理界面

图5 图像边缘检测模块界面

2 实验平台的特点

基于Matlab GUI数字图像处理实验平台具有以下特点:

(1) 内容丰富,涵盖图像处理领域的大部分内容,具有很强的可移植性和可扩展性,可在教学的过程中有目的性的进行更改,增删不同的功能模块,以便达到更好的教学效果。

(2) 界面友好,方便操作[7],可在同一界面同时显示处理前和处理后的图像。对于某些需要确定参数的算法,该实验平台上设置了不同的初始参数值,学生也可以自己动手调节参数值。针对同一数字图像处理算法,该实验平台课可同时展示三种不同参数的处理效果,通过比较不同参数条件下的图像处理效果,使学生理解有关参数变化对处理结果的影响。

(3) 教师在教学过程中,可以方便地演示图像处理的某一内容的处理结果,在进行理论教学的同时使学生知道该处理对图像的影响,从而加深学生对该理论和内容的理解。

(4) 通过该实验平台仿真试验可选出最佳的处理方法、步骤和参数设置,然后再编写程序,从而有针对性的对算法加以改进,减少了学生对同一图像处理过程的不同处理方法的重复编程时间,便于学生对有关算法进行改进或创新。

3 结 语

针对北京邮电大学世纪学院《数字图像处理》实践教学的现状,设计实现了基于Matlab GUI的数字图像处理实验平台。该实验平台用户界面友好,交互性强,可拓展性好。根据我院信息类不同专业的教学特点,在教学的过程中,可自行修改模块设置,增删特色模块,使学生对数字图像处理的相关理论有比较深刻的理解,从而提升《数字图像处理》课程的实践教学效果。

参考文献

[1] 张颖颖,黄义定,王红娟.关于“数字图像处理”实验的任务模块化教学模式的探索[J].实验室科学,2012(6):52?54.

[2] 安平,王朔中.建立在Matlab平台上的数字图像处理教学实验系统[J].实验室研究与探索,2001(1):61?62.

[3] 王帆,刘慧.基于Matlab GUI的数字图像处理实验平台设计[J].中国科技信息,2011(7):124?125.

[4] 陈壵光.精通Matlab GUI设计[M].北京:电子工业出版社,2008.

[5] 杨顺辽,李泽军.基于Visual C++的数字图像处理实验软件开发[J].国土资源高等职业教育研究,2011(7):25?28.

[6] 张德丰.数字图像处理:Matlab版[M].北京:人民邮电出版社,2009.

[7] 南洋,周静,孟开元,等.基于Matlab的GUI的界面设计[J].石油仪器,2008(12):76?78.

图像 灰度 数字