《自动化技术与应用》2021年第40卷第2期图像处理技术
python转java代码Image Process i ng Tech no l ogy
基于Java与MATLAB的数字图像处理网络平台构建
王广玥
(福州大学电气工程与自动化学院,福建福州350108)
摘要:本文针对数字图像处理教学实验难度大这一问题,采用MATLAB与Java语言混合编程的方法实现数字图像处理网络实验平台。该方法利用MATLAB软件编写可以实现图像处理的m函数,该函数通过MCR编译器打包之后可以导入Java编写的项目中;利用SSM框架对项目进行搭建,再通过tomcat服务器将项目进行发布,使学生可以在自己的电脑上登录网页进行自主学习,通过上传图片和输入参数得到相应结果,结合文字知识切实理解课程内容。既能提高教学质量,也可以激发学生学习兴趣,有利于进行进一步的学习和实验。
关键词:数字图像处理;MATLAB;JavaEE;SSM
中图分类号:TP391.41文献标识码:B文章编号:1003-7241(2021)002-0094-06
Construction of Digital Image Processing Network Platform
Based on Java and MATLAB
WANG Guang-yue
(College of Electrical Engineering and Automation,Fuzhou University,Fuzhou350108China)
Abstract:Aiming at the difficulty of digital image processing teaching experiment,the MATLAB and Java language mixed programming method is used to realize the digital image processing network experiment platform.The method uses MATLAB software to write an m function that can realize image processing.This function can be imported into a project written in Java after being packaged by the MCR compiler.Use the SSM framework to build the project,and then publish the project through the tomcat server,so that students can log into the webpage to learn independently on their own computers,get the corresponding results by uploading pictures and input parameters,and combine the text knowledge to understand the course content.It can not only improve the quality of teaching,but also stimulate students'interest in learning,which is conducive to further study and experimentation.
Key words:Digital image processing;MATLAB;Java;SSM
1引言
实验教学是本科教学中的重要环节之一,是整个教学内容和课程体系中不可分割的组成部分[1]。实验教学不同于科学探索实验,它主要是教会学生掌握实验手段,并正确利用所学知识,开展理论思维,去验证和解决知识学习过程中的问题,为进一步的科学探索打下基础。基于教学实验的功能特点,组织实验教学的方法和手段很多,在信息化、网络化高度发展的今天,应充分利用先进的现代教育技术手段,建设网上实验教学平台。
收稿日期:2019-09-18
数字图像处理课程是计算机、电子、通信等专业普遍开设的一门专业课。该课程内容抽象、理论性较强,同时可视化程度高,实践性也较强[2-3]。如何取得理论与实践的最佳结合,是教师在教学过程中遇到的普遍问题。而MATLAB对图像处理领域开发了功能强大的模块集和工具箱,其中包含有大量的图像处理函数,十分适合于做图像处理操作[4-5]。釆用MATLAB编写的图像拼接代码更加简单易懂,代码量比起大大减少更加易于维护,不易出错。但函数在未经任何处理时只能运行在装有软件的环境下,这个缺点限制了它的应用。
针对这个缺点,MATLAB软件提供了两种方法来解
94|TechniquesofAutomation&Applications
图像处理技术
Image Processing Technology
《自动化技术与应用》2021年第40卷第2期
决这个问题:第一种方法是用户可利用MATLAB自带的编译器将函数或图形用户界面转换成为EXE可执行文件,这样就可以脱离MATLAB环境,只需安装MATLAB 组件便能运行[6-7]o第二种方式是利用MATLAB软件中提供的MATLAB BuilderJA功能将程序封装到一个组件中,提供给程序使用,从而使程序可以在更多的应用平台中得到发展[8-10]。
根据以上分析,利用Java与MATLAB混合编程技术,能够结合Java语言在图像处理方面的优势和Java语言具有多线程机制方便实现网络上实时交互行为的优势,设计了一个基于网络的图像处理教学平台,让学生不用下载安装任何环境,可以直接登录网页进进行学习和实验,在简单输入某些参数交由后台处理后,即可查看实验结果。
2学习平台构建
2.1数字图像处理实验的内容设置
随着科技的发展,越来越多的理工科专业开始开设数字图像处理这门课程,通过阅读经典的数字图像处理书籍和一些学习建议[11],一般将知识点和实验内容分为三个方面:一些简单的基础部分和介绍;经典图像处理方法部分;面向图像识别理解领域图像处理部分。在学习过程中,将传统的图像处理作为基础是很有必要的,为了让学生兼顾基本知识面与扩展知识点,本次实验平台设计将实验内容分为如下部分。结合知识点进行学习,对知识点进行更深层次的学习。当学生上传图片并输入参数时,服务器端调用相应的函数对图片进行处理,并将结果返回到页面。整个流程如图2所示。
图2实验处理流程图
2.2M函数编写
MATLAB中有许多便于图像计算的函数,但因为其不便于做开发,为了方便对于数字图像的学习入门,将MATLAB图像显示在网页端,我们可以结合Java编程语言,确切的说是利用JavaEE企业级应用开发,经过相关配置之后可以输入网址进行访问。
在Java中调用MATLAB有三种方式:利用CORBA (Common Object Request Architecture)连接[8];利用JNI (Java Native Interface)连接;利用MATLAB的Com-Builder连接。使用CORBA连接十分复杂,开发效率低;使用JNI连接,必须针对不同的操作系统编写应用程序,且必须安装在有MATLAB的系统中;而使用ComBuild-er连接则十分简单,具有跨平台优势。在MATLAB2000a 以上的
版本中又在ComBuilder的基础上开发岀MATLAB Builder for Java,可以直接把MATLAB函数包装到一个或者多个Java类叫
在MATLAB软件中的准备如图3所示。
实验内容
工图像点运算
工
图
像
几
何
变
飘
工
图
像
频
域
变
拥
工
图
像
增
强
二
-
图
像
复
原
工
图
像
压
缩
编
码
工
图
像
边
缘
检
测
工
图
像
分
Itjl
1-1
图
像
表
示
与
特
征
描
述
图3MATLAB准备流程
(1)环境配置
想要Java项目无误的调用MATLAB编写的函数,
需要两者使用的jdk版本相同,这样才能让函数处在相同
的环境中等待被调用。
图1实验内容
基本模块:图像点运算、图像几何变换、图像频域变
换、图像增强、图像复原、图像压缩编码、图像边缘检测;进阶模块:图像分割、图像表示与特征描
述。每章安排一个的验证性实验以基础知识为主,综合性实验是验证性实验的延伸,包括分段线性变换增强、K近邻中值滤波去噪、数字图像处理终点线圆的检测等等。
学生演示完实验之后还可以下载提供好的相关代码
(2)分析实验教学具体要求,在MATLAB中编写功能函数。本例中使用的函数用来模拟由于镜头各种方向的运动而导致的图像模糊或由于相机和物体之间的相对运动造成的模糊,利用MATLAB的预定义掩模编写即近似镜头运动模糊掩模,此掩模属于空间线性滤波。
空间滤波是空间图像增强的一种常见手段,从广义上讲是指依次对以每个像素为中心的领域进行一系列的统计、计算,得到的结果代替原本的像素值的操作[2]o由
Techniques ofAutomation&Applications|
95
图像处理技术
Image Processing Technology
《自动化技术与应用》2021年第40卷第2期
于线性空间滤波都使用掩模对图像矩阵进行二维卷积相 关或二维相关,所以所有线性空间滤波都可以使用MAT
LAB 提供的imfilter 函数来实现,其调用格式如下:
Z=imfilter(X,H,option1 ,option2,…)
其中X 为输入图像矩阵,H 为m *
n 的二维矩阵,表示
掩模。掩模矩阵可以由用户自己定义,也可以直接使用
MATLAB 事先定义好的许多常用的滤波器掩模,这些掩
模可以由fspecial 函数获得,fspecial 函数的调用形式如下:
H=fspecial(type,parameters)
其中type 为字符串指定了掩模的种类,本次实例选 择了’ motion'。Parameters 是掩模的参数,这里我们将
其设置为输入参数,由学生在网页端输入参数,以此得到 不同的处理结果。
(3)利用MATLAB 部署工具,将功能函数文件打包
编译为jar 包。函数编写完成之后需要打包motion.m 文
件,生成motion.jar 文件:在命令行窗口中输入命令"de-
ploytool ”,随后在岀现的 Compiler 窗 口选择 Library Co
mpiler, 之后在 TYPE 窗 口选择 Java Package [15], Add
exported functions 选项中选择刚刚写好的motion.m 文
件,并将即将生成的包和类分别命名为motion 和Test1, 一切部署完成之后点击Package 对其进行打包,打包页
面如下图4所示。等待一会即可在for_redistribution_files
_only 中获得motion.jar 文件。得到的文件在之后的环
节中可以被调用,并可以选择图片对其进行滤波处理。
2.3 Java 编程
结合 MATLAB Builder For Java 将 MATLAB 编
写的功能函数封装为Java 类之后,只是单单拥有MAT
LAB 编写的M 文件是不能在网页端显示岀MATLAB 图
像的,需要在单个服务器上部署WebFigure 服务和嵌入
WebFigure 的页面。此配置允许您使用最少的配置从
JSP 页面快速引用WebFigure ,最后在Java 中调用。
图5是利用Java 语言在建立实现网页端的数字图像 处理学习平台项目的具体流程。
2.3.1开发环境的配置
使用框架组合方式的项目都使Java EE 架构具有高 度的可维护性和可扩展性,同时极大提高项目的开发效
率,降低了开发和维护的成本,所以本次项目选择SSM 框 架搭建项目°Java 项目的开发工程经常通过Mave n 管理
着项目所需要弓I 入的文件包。其可以对Java 项目进行构
建和依赖管理,结合提供了一个仓库,使得开发者能够方 便的下载所依赖的jar 包。其核心文件l 可以直 接对项目的jar 包依赖进行管理。
2.3.2 Java 项目的建立
在Java 的开发工具MyEclipse 中新建立项目,配置
Tomcat 的环境,同时需要将jar 包导入工程目录的文件
夹和Web 服务器的类路径中,接着建立ssm 框架需要的 各种配置文件,spring-mvc 、jdbc.properties 、log4j,pr-
operties 、applicationcontext 、l 等。部分关键代
码如下,主要利用Spring 框架松耦合和控制反准的优点, 使用注解方式注入,并自动扫描com.ssm 为代码的路径,
base-package 用来指定要扫描的包:
<context :annotation —config/>
<context :component-scan base-package="com.
ssm" />
2.3.3 WebFigure 的部署
想要从JSP 页面快速引用WebFigure,需要进行如
图4 m 文件打包过程
O Java
▲
智 motion,m
曲 O Runtime downloaded from web MyApplnstaller_web
—Runtime included tn package BMyAppln5tahe<^n^~
知了 MB Settings Package
@ .NET Assembly 喘 Python Package
TYPE
EXPORTED FUNCTIONS
PACKAGING OPTIONS ■sarrNGs package
图5项目建立流程
96 | Techniques ofAutomation&
Applications
图像处理技术
Image Processing Technology
《自动化技术与应用》2021年第40卷第2期
下配置:(1) 将 MATLABROOT/toolbox/javabuilder/we —
bfigures/webfigures. tld 客户标签处理程序文件复制到
Web 应用程序的WEB-INF 文件夹中。并将uri 和迅fo 进
行位置互换。
(2) 在JSP 文件中,通过在文件的头部声明添加以下
代码行来对WebFigure 标记的引用。添加对使用MAT
LAB Compiler SDK 创建的包的引用叭<%@ taglib prefix="wf" uri= "http : //www .ma-
thworks/builderja/webfigures.tld " %>
(3)配置完成之后,添加代码以实例化已部署的类。
主要代码:
<%!Class1 myDeployedComponen t ;%><%!public void jspInit(){
try {
myDeployedComponent=new Class1();} catch(Exception e){
e.printSt a ckTrace();} }%>
<%!
public void jspDestroy(){ if(myDeployedComponent!=null){
myDeployedC o mponen t .dispose();} myDeployedC o mponen t =null ;}%>
WebFigure webFigure=(WebFigure) ((MWJava-
sion"/>
这些代码主要是返回WebFigure 并将其附加到标签
以供显示。从函数的输出中获取WebFigure,并实现参 数传递及对象转化。
(4)从控制器类Controller 传递参数到jsp 。FileU- ploadController 中的“/fileUpload ”方法用来控制用户上
传图片和输入参数,设置图片上传的保存地址目录,使用
上传人输入的id 重新命名上传文件,并通过Mode l 参数创建对象,利用model.addAttribute 将图片的名称提交到 FileUpload.jsp 。
2・3・l 文件设置
配置文件l 是web 项目中一系列标准的集
合,需要在其中添加相应的WebFigure Servlet 配置,实 现MATLAB 图像在网页端的显示。
<servlet>
<servlet-name>WebFigures</servlet-name>
<servlet-class>lbox.javabu-
ilder.webfigures.WebFiguresServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WebFigures</servlet-name> <url-pa t t e rn>/WebFigures/*</url
—pa t t e rn>
</servlet-mapping>
3应用实例
将项目部署发布到Tomcat 服务器上,在任意用户的
浏览器上输入网址http : //服务器的IP 地址:8080/Web-
ObjectRef)myDeployedComponent . getPlot( 1)[0]) • get();
//将其设置为标记,强制对象返回Session 访问,re-
ques t .ge t Session().setAtt r ibute("MyFigure",webFig —
ure)
图6实验内容页面
TechniquesofAutomation&Applications |
97
图像处理技术
Image Processing Technology
《自动化技术与应用》2021年第40卷第2期
福州大学图像处理学习基础知识数字圏像处理虚扌嫖验个人信息资源共享A首页〉虚拟实验>演示平台
虚啦验
文件:「选择文件J未选择曲文件
演示平台窗
燥作平台
图7输入参数页面
图8运动模糊结果页面
安排的内容如图6所示。
通过在网络上学习数字图像的基础知识之后,学生就可以亲自实践,在虚拟实验这一栏下面的操作平台,根据实验内容选择相应的方法,上传图片和输入参数进行图像处理,以此得到相应的图像处理结果,可以在图7所示输入相关参数。
学生可以输入自己的学号和运动位移量,并选择本地的图片上传到服务端,选择运行按钮,服务器端接收到文件之后即可对该生上传的图片采取运动模糊的处理,结果如图8所示。
4结束语
本文使用的基于MATLAB与Java混合编程的方法较好地解决了单纯基于M A TLAB或者单纯基于Java进行数字图像处理实验方法的缺点,此教学实验平台知识布局和实验环节界面相互对应、简洁明了、便于操作,无需安装任何其他软件就可以进行实验,让学生在课堂之余,自己登录网站由浅入深地学习数字图像处理的知识和技能,通过这些验证性实验,学生可以对学到的知识有更直观的理解,以此掌握数字图像的基础知识,为以后更深层次的学习打下基础。参考文献:
[1]周苏娟,蒋世忠,黄展鹏,等•医学图像处理远程虚拟实验教学平台的设计与实现[J].中国医学教育技术,2011,25(5):526-529.
[2]高展宏,徐文波•基于MATLAB的图像处理案例教程[M].北京:清华大学岀版社,2011:8-154.
[3]费建瑶•基于MATLAB和Java技术的青海省牧区雪灾监测预警系统[D].兰州:兰州大学,2018.
[4]蔡云鹭,杨洁霞,林志光•基于MATLAB WebFigure 的在线作图课件[J].计算机与现代化,2014(10):5-7,15.
[5]刘天庆•基于JavaEE技术平台课程管理系统的开发与设计J]•科学技术创新,2019(19):95-96.
[6]鲍聪,孙祥娥,王文松,等.COM对象下Com Builder 的虚拟演示平台[J]•现代电子技术,2019,42(2):89-93•
[7]王建新,陆炜妮,王伟平•基于组件的数字图像处理仿真系统的设计与实现[J].系统仿真学报,2004(6):1213-1216.
[8]Aparna Halbe,Abhijit R.Joshi.A Novel Approach to HTML Page Creation Using Neural Network[J].Proce-dia Computer Science,2015(45):197-204.
[9]王文松,孙祥娥,鲍聪,等.JAVA-GU I的FIR滤波器网页端设计[J]•信息技术,2018,42(10):48-51.
[10]宁丽娜•基于Java Web的牧草种子显微图像拼接系统的研究与实现[D].内蒙古:内蒙古农业大学,2014.
[11]郭依正,李静怡,万宝霞,等•“数字图像处理”课程虚
(下转第111页)
98|
TechniquesofAutomation&Applications
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论