李荣
摘要:数字图像处理课程是一项以实验为主的教学课程,其教学目的就是利用各向难易程度的教学实验,让学生掌握数字图像处理技术,增强学生的自主学习能力。很多学生已经学习过Java语言,但是对Image J 软件并不是非常了解,所以,开展实验教学的基础首先是让学生理解其含义,同时还要学会使用Image J 插件的代码模板。教师在教学中会根据现有的数字图像处理代码,科学性的对现有插件进行适当扩展,便于学生深入学习。
关键词:Java语言;Image J平台;图像处理;教学方案
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)36-0146-03
随着数字化设备的广泛使用,让数字图像处理的难度大大增强。为了能在现有形势下满足数字图像处理的要求,许多大学高校陆续开设了和数字图像处理相关的实验课程,有的专业还将其列入专业课领域,学时长达一个学期甚至一个学年。数字图像处理的原理是根据数学信号演变而来的,两者有着密不可分的联系,学校在教学过程中,一般会将数字图像处理课程分为理论教学部分和实验研究两个模块。数字图像处理的重点,还在于试验探究课程的学习,因此,科学巧妙的安排试验内容是试验教学中的重中之重。
1数字图像处理课程实验教学简介
1.1 MATLAB 的数字图像处理课程实验教学特点
在国内知名高校的计算机科学与技术专业的数字图像处理课程实验课堂上,学生使用的电脑系统基本上全部是 Windows 操作系统,其教学系统有2种,第一种是C 和 C ++ 语言,第二种则是Math Works 公司开发的 MATLAB 软件,,开发实验工具借助微软公司的平台,主要框架是MFC 框架和 Open CV 库。
Math Works 公司开发的 MATLAB 软件主要适用于处理向量和矩阵,其设计的初衷就是处理此类问题。因此,MATLAB在向量和矩阵开发方面是比较专业的,其优点主要表现为:操作简便且功能多样、信息处理能力强等,被广泛利用于科学研究和新产品的开发设计项目之中。 MATLAB事实上就是一种编程语言,也可以看成是一个Python 的高级脚本语言,在使用时只需要利用MATLAB 本身内置的函数来解决一些程序性的问题。事实上,我们可以认为MATLAB 属于一种交互式的平台,内部带有一种弱型的脚本语言,使用过程中,不需要在内存和分配和释放上担忧,就可以实现与C /C + + 短时间交互。另外,MATLAB中还有一个图像处理工具箱,其功能十分完整,里面涵盖的一系列的各种图像的处理方法,在数字图像处理过程中,可以借助模块中自带的各种函数分析以及解决问题,其功能模块提升了MATLAB 软件的实用价值。从而让此软件在数字图像处理和实验课程设计方面得到了广泛的应用,并得到了国内许多高校师生的普遍认可。同时,MATLAB 软件还可以实现跨平台交流,不管是什么操作系统,都可以安装MATLAB 软件来进行各种实验研究。
1.2 MFC 的数字图像处理课程实验教学特点
另一种数字图像处理课程的实验教学是借助微软的 Windows 平台,利用Visual Studio作为开发工具,C 和 C ++是普遍使用的开发语言,开发框架则是MFC。目前,国内的许多高校中计算机科学与技术专业初学的程序设计课程一般是C 语言,所以学生几乎对C语言都是十分了解的,在很多数字图像处理和数据分析过程中,借助C语言来分析问题非常普遍。学生在C语言的使用过程中,一般都会使用到指针访问数字图像数据,使用过程中常常需要手动进行内存的分配和释放。这样做的不足之处是学生在利用C语言来分析问题的时候,经常不会刻意地去关注数字图像处理内容,会分散注意力。同时C语言中也没有接口函数在图形用户界面中使用,这就让C语言的实用性大大缩减,学生只能利用C语言来完成一些简单的程序设计,而不能进行快速实现函数和图型用户界面的交互。
近年来,伴随着C ++ 语言快速发展,许多大学高校计算机相关专业学习的方向逐渐向C ++语言程序设计转变。学生在进行数字图像处理中也经常会用到C + + 语言。其主要还是借助于微软相关平台,让学生借助MFC 框架来进行数字图像实验的相关研究,这是一项非常重要的实验内容。
2 Image J 的数字图像处理实验教学设计
2.1采用 Image J 的原因
在前文的分析中,许多高校计算机科学与技术相关专业的课程学习,可以尝试使用Image J 软件来解决一些数字图像处理问题,学生可以对此進行深入研究和讨论。
Image J是美国科学家开发的一项数字图像处理和分析软件,其功能非常强大,用途广泛,受到世界各国很多生物学家和医学家的广泛推崇,可以广泛适用在很多医学研究之中。Image J语言是在Java 语言的基础之上编写的,只要电脑中含有Java 虚拟机的操作系统,就可以支持Image J软件的运行。Image J自身的代码具有开放性的特点,只需在Image J 的相关网站上就可以实现源程序和文档的免费下载,学生可以根据需要免费下载Image J 的源代码,并对其运行原理做研究分析。学生完全可以借助Image J中相应的插件,在研究过程中把不同图像数字处理方法转换成相应的插件。通过 Java 虚拟机和 Image J 提供的动态插件加载功能,学生可以实现源代码的更改,按照自己的想法去编译就可以接进行加载和运行,不需要重新启动软件,这就是软件特有的“热 拔 插 ”的功能。 Image J 的运行图像如图 1 所示。
2.2 Image J 的插件架构系统
Image J中大量的菜单命令都是一个个插件,只要输入相关命令,就可以运行相关程序,同时可以借助Image J某些插件的功能实现功能拓展。每一个插件都是以Java为主要接口,最后保存在特有的文件夹中。许多自定义的插件一般可以借助Image J中自带的编辑器去编辑,还可以把自己想要编辑的文字、软件在Image J 的插件记录器中记录,可以生成自己想要的新型插件。
在软件的实际运行过程中,都可以在 Image J 里编译和运行这些插件。但是我们自己在Image J中编写的插件需要保存在一个特定的文件夹,此文件夹作为Image J中的子文件夹。带有下划线的文件才能默认储存在这个特定的子文件夹中。在Image J 中常见的 3 种类型的插件: 1) 无需图像作为输入的插件,此类插件需要 Plug In 接口;2) 插件过滤器,此类插件需要图像作为输入,所以需要 Plug In Filter 接口;3)自己构建图形用户界面的插件,此类插件需要继承 Plug In Frame 类。
3 Image J 的数字图像处理实验教学案例展示
3.1灰度图像反转
在实验课初期,许多学生对Image J插件的开发和运行原理不是很熟悉,因此,教师往往会提供开展实验所要利用的模板,学生按照模板开展相关实验,最后加以拓展。文章利用2个案例来说明借助Image J平台来开展图像处理课程的实验。从这2个实际案例中我们可以看到Image J软件对于数字图像处理作用重大。
第 1 种插件模拟的功能是灰度图像反转。其插件程序代码如下:
[import ij.*; import ij.plugin.filter.PlugInFilter;import ij.process.*; import java.awt.*; public class Inverter_implements PlugInFilter{/* 实现 PlugInFilter 接口*/public int setup(String arg,ImagePlus imp) {/* 只支持对8位灰度图灰度图像* /return DOES_8G;}public void run(ImgaeProcessor ip){/*获取图像的像素数组*/Byte pixels=(byte )ip.getPixels();/*获取图像的宽度*/int width=ip.getWidth(); /*获取图像的高度*/int height=ip.getHeighit();int offset,i; /* 处理图像的每一行*/for (int y=0; y 3.2图像滤波 在数字图像处理课程理论教学中,图像滤波是一项重要的知识,实验的目的主要让学生掌握图像平滑和图像锐化。比如:在开展图像滤波实验中,学生一般会用到两种不同模式算法,第一种是不可分离式算法,第二种则是可分离式算法。一种大小为 m × n 的数字滤波器,其中的每一个像素,不可分离算法的时间复杂度为 O( m × n) ,可分离算法的时间复杂度为 O( m + n) ,可以看出不可分离的复杂度要远远高于可分离算法。这就要求学生对不同分辨率的两种图像进行两种算法的测试,测试完成后需要对两种测试结果进行比较,对两种算法的时间进行比较,可以清楚的体会到两种算法的不同之处。通过对两种算法的实验后,学生可以直观地看出可分离算法在运算时间上具有非常大的优势。 4实验结果分析 从实验结合可看出 Image J 1.49的圖像均值滤波的测试时间,测试环境为: 512 × 512 的灰度图像,JDK 1. 8. 0_60,Intel Core i3 /2. 33 GHz,4 GB RAM。可分离算法相对于不可分离算法的优势,尤其是当滤波器尺寸明显变大以后更加清晰。 5结束语 文章重点阐述了Image J 的数字图像处理实验教学案例设计在数字图像处理理论教学中的运用,丰富了数字图像处理理论的教学方法。计算机科学与技术专业学生通过对Image J的学习,一方面丰富了自己的文化视野,提高了自身的专业知识水平,另一方面也培养了自身的创新能力,借助Image J去创新研究出更多的数字图像处理算法。 参考文献: [1] 王冉,赵锡源.数字图像处理技术现状与展望[J].中小企业管理与科技(中旬刊),2016(3). [2] 朱莉玲.数字图像处理技术与应用研究[J].信息系统工程,2016(4). [3] 毛晓琦.关于对数字图像处理技术的有效探讨[J].电子技术与软件工程,2016(16).