图像处理实验平台的对比

时间:2024-01-05 点赞:42435 浏览:79814 作者原创标记本站原创

本论文是一篇关于矩阵类期刊论文格式,关于图像处理实验平台的对比相关研究生毕业论文开题报告范文。免费优秀的关于矩阵及函数及语言方面论文范文资料,适合矩阵论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

[摘 要]图像处理是一门理论联系实际、看重实践的课程.本文对比、分析了常见的图像处理实验平台.可以为实验时的选择提供参考.

[关 键 词 ]图像处理 实验平台 解释器

中图分类号: TP391.41 文献标识码:A 文章编号:1009-914X(2014)01-0251-02

图像处理是一门理论结合实际的课程,涉及大量概率论、矩阵论的相关知识.为了使学生能较牢固掌握相关知识,该课程通常配有实验环节.尽管使用C/C++语言(例如在Windows上使用VC)调用其它的库,可以完成所有的图像处理操作,并且已经有相应图书可供参考,但是使用VC作为课程实验平台的难度较大,很容易使学生陷入C/C++语言、VC使用、各种库安装的细节,且编译过程花费时间,最终导致学生无法专注于了解图像处理的原理.所以在高校教学时,广泛采用Matlab作为图像处理实验的平台.但是,Matlab自身的一些特点,使得有些学生不容易熟练掌握;另一方面,随着计算机技术的发展,Matlab一枝独秀的局面也发生了变化,其他的解释性的语言逐渐走进大学教学课堂,下面将逐个进行介绍,并加以比较.

1.Matlab,http://.mathworks.

Matlab是矩阵实验室(matrix laboratory)的简称,最初是Cleve为了方便学生学习线性代数而编写的免费软件;现在是MathWorks公司的商业产品.Matlab以矩阵为基本数据结构,直接支持复数,运算符和函数可以同时作用于数和矩阵.使用Matlab编写的的程序格式简单,如数学公式般简洁明了,所以用户无需太多时间学习就能全力解题.Matlab通过解释方式执行,无需编译和链接,所以可以提高编程效率.

发展至今,Matlab已经远远超越了“矩阵实验室”的作用,具有非常多的的工具箱,能够解决多种不同学科领域的问题.就图像处理而言,可以方便地读写多种图像文件格式,然后在空域或者时域进行各种滤波、形态学运算、压缩、分割与识别等等操作;可以方便、智能地以直观的方式显示2D、3D数据.

但Matlab的一些特点,使某些具有其他先验知识的学生不容易掌握,例如:

1)不能始终如一的对待矩阵.即,如果变量a等于[1,2;3,4],那么从矩阵论的角度考虑,a(1,:)(1)应该返回元素1;但是实际上Matlab不认识a(1,:)(1)这样的写法.Matlab这样的处理方式,也使得习惯了C语言数组的用户感到奇怪;

2)尽管Matlab提供了命令窗口(Command Window),允许用户以交互的方式运行程序,但是在这个交互进程中,用户无法定义复杂函数.Matlab中,复杂的函数必须先在一个m文件中定义之后,才能使用;

3)使用m文件定义函数时,函数结束可以不使用end关 键 词 (除非是有嵌套函数,则需要在每个嵌套函数末尾添加end);甚至在早一点的Matlab版本中,在m文件中定义函数的时候末尾使用end关键字,Matlab会给出警告;

4)调用一个没有输入参数的函数,不需要在函数名后添加括号.

2.类似/兼容Matlab的软件

Matlab在高校、企业中得到了广泛的应用,得到了巨大的成功.但是由于Matlab是商业软件,所以限制了其使用范围.受Matlab软件的启发,陆续出现了一些类似于Matlab的开源软件.下面分别介绍:

2.1 Scilab,http://Scilab.

Scilab是科学实验室(Scientific laboratory)的简称,20世纪80年代由法国国家信息自动化研究院(INRIA)开发.语法与Matlab非常接近,也具有相当多的工具箱.

2.2 Octe,http://.gnu./software/octe/

Octe由威斯康星麦迪逊大学的James B. Rawlings和德州大学John G. Ekerdt等人于1988年开始开发.Octe相对于Scilab而言,对Matlab的语法兼容性更好.

2.3 FreeMat,http://freemat..

借鉴了Matlab和IDL语言的特性而开发的软件,据称95%兼容Matlab.进展较慢,toolbox较少,但是软件体积较小.


无论Scilab、Octe还是FreeMat,它们都能始终如一对待矩阵,并且可以在交互方式直接定义复杂函数.

2.4 Julia,http://julialang./

Julia是高性能动态高级编程语言,语法比较接近Matlab,所以便于有Matlab经验的用户学习.

Julia设计者多是Matlab的用户,因为他们知道Matlab的优缺点,所在设计Julia的时候尽量扬长避短.Julia支持并行计算和云计算;Julia使用JIT(Just-in-Time)实时编译器,所以Julia代码有效地提高了它的运行效率,在某些地方甚至能比得上C和C++.

3.Python,http://.python.

Python是一门通用的计算机语言.自身对矩阵运算、图像处理的能力有限;但是Python可以使用其他语言(主要是C/C++)的库,所以Python语言结合Python Image Library(简称PIL)、NumPy/SciPy和Matplotlib等库的组合,能够完成图像处理课程的所有实验.其中,PIL提供了对多种图像文件的读写功能,并且可以对图像进行基本操作;NumPy/SciPy提供了对读取出来的图像矩阵数据的运算;Matplotlib提供了类似Matlab函数的绘图功能,用于将处理结果以可视化的方式显示出来.如果PIL仍然不能满足图像处理的需求,用户也可以在Python中使用OpenCV和ImageMagick库.用户也可以在Python中使用gnuplot库,绘制2D/3D图. 使用py2exe(仅用于windows平台)、pyinstaller(跨平台)等工具,可以打包、分发Python应用程序,用户无需安装Python,也可以运行它.

4.Ch,http://.softintegration./

美国加州大学戴维斯分校程辉(Harry H.Cheng)教授有多年C语言相关的教学和科研工作经验.他设计的跨平台C/C++解释器Ch,能直接分析、解释执行C/C++源代码,而无需产生中间码或字节码.Ch为C语言添加了很多Fortran、Matlab和Mathematica等语言的特性.与C语言相比,Ch简化了编写数值计算和分析程序的过程.Ch支持ISO C标准C90、C99的部分特性、C++的类;另一方面,很多Ch首先实现的特性被C99采纳.使用Ch可以写一次C/C++源程序,在多个主流操作系统(Windows、Linux、MacOS X等等)上运行.虽然Ch专业版是商业软件,但是Ch学生版是免费的,且具有几乎和专业版一样的功能.

Ch可以较方便的使用现有的大量C语言库.Ch提供了强大的高级数值计算和二维/三维绘图功能.Ch有商业授权的SoftIntegration Graphical Library (SIGL),用于绘图;也提供了开源的接口,可以直接调用开源的绘图软件gnuplot、图像处理软件OpenCV和ImageMagick.所以Ch可以用于图像处理的研究

Ch支持使用C/C++编译器.使用Ch解释执行、调试通过一个源程序之后,可以使用C/C++编译器编译输出可执行文件,脱离Ch的环境.

5.总结

表1总结了上文提到的7种可用于图像处理实验的平台.从该表中可以看出,Matlab已经不再是唯一可选择的平台:对于习惯了Matlab软件的用户,可以选择Scilab、Octe、Freemat或者Julia等替代品;对于习惯了C/C++语言的用户,可以选择Ch;如果除了数学计算以外,还需要完成一些其他的操作(例如复杂的界面设计),可以选择Python.

相关论文

校企合作的计算机网络实验平台

本文是一篇创新实验论文范文,创新实验方面学年毕业论文,关于校企合作的计算机网络实验平台相关学士学位论文范文。适合创新实验及网络工程及。

小学教育专业理科实验平台建设刍议

本文是一篇小学教育论文范文,小学教育类有关在职毕业论文开题报告,关于小学教育专业理科实验平台建设刍议相关学年毕业论文范文。适合小学教。