欢迎您访问深圳市科视创科技有限公司官网
服务热线

0755-368 97097

banner-image

新闻动态

首页 > 新闻动态

MATLAB与USB接口相机的现状

发布时间:2017-10-25

    MATLAB软件平台具有强大的矩阵运算和特征向量处理能力,被广泛应用于学术、科学研究和工程技术应用等领域。同时,MATLAB也十分注重于外部程序的通信,提供了几种与外部程序通信的方法。
    (1)MEX技术
    MEX文件本质上是一个动态链接库文件,不过是由MATLAB编译器调用并执行的,它是按照MATLAB的格式,使用其它编程语言编写的。在Windows系统中,这类文件类型的后缀名为.dll。在MATLAB中使用MEX文件,只需要在MATLAB命令框中输入MEX的文件名即可,这同MATLAB中内置函数的调用方式完全相同。MEX文件是MATLAB平台实现调用外部程序功能的接口。通过它,用户可以完成以下功能: 
   a.代码重用
    对于使用C语言编写实现的算法,可以将其当成MATLAB内置函数,直接在MATLAB平台下调用,省去了将这些函数移植成MATLAB的m文件的步骤,可以充分的利用系统资源。
   b.速度提升
    对于数据量较大的处理运算,一些高级编程语言实现的算法要比MATLAB执行效率高很多,这时不妨使用这些语言完成算法的编译,而后在MATLAB平台下调用,进而大大提升数据处理的效率。对于循环迭代的问题,MATLAB中的m文件执行效率远远不及C语言,因此不妨使用C语言以MEX文件的格式编写循环迭代,以提高计算速度。
   c.功能扩展
    通过MEX文件的使用,用户可以实现对硬件的直接编程,如数据采集卡,步进电机等,以实现数据采集或控制,进一步拓展MATLAB的应用领域。
   (2)loadlibrary
    MATLAB为调用外部驱动程序DLL提供了一套API函数,最主要的就是loadlibrary函数,这个函数将DLL装载入MATLAB工作区间,使得MATLAB能够使用外部DLL中的函数,DLL中封装的所有函数接口可以通过libflmctions函数查看,通过lib Struct和libpointer函数创建DLL函数可以接受的函数参数如指针类型的参数,然后可以通过calllib函数调用DLL中的函数。这个方法可以说灵活性比较高,但是需要用户对DLL中的函数原型、使用方法以及工作流程十分熟悉,对于不是开发者的用户来说还是有些困难的,除此
之外,这个方法对于C++支持还是不够,一些C++中的数据类型如函数指针参
数,MATLAB中就配置不了,而且回调函数的设置也是比较麻烦的。所以,还是要找其它办法来完成这项功能。
   (3)IMAQ Toolbox
    MATLAB与USB接口相机通信主要是通过MATLAB提供的ImageAcquisition Toolbox实现的,ImageAcquisition Toolbox技术可以采集来自摄像机和图像采集卡的图像和视频并将其直接导入MATLAB和Simulink。它可以自动检测硬件和硬件配置的属性,并提供先进的工作流程,使采集和处理能够在同一个循环中运行,并在多个多式联运设备之间实现同步采样。随着多个硬件厂商和行业标准的支持,可以使用IMAQToolbox的成像设备范围从廉价的网络摄像头到,以满足低功耗、高速及其他具有挑战性的要求.
    IMAQ Toolbox关键特性有:
1>.支持各种工业标准,包括 DirectShow,IEEE 1394, Camera Link 和 GigEVision。
2>.支持各种操作系统提供的网络摄像头接口标准,包括DirectShow,QuickTime 和 video41inux2。
3>.支持一系列的工业和科学硬件制造商。
4>.提供很多采集模式和缓存管理选项。
5>.支持在Simulink中生成C代码。
    IMAQ Toolbox通过提供一个在操作系统、硬件设备和制造商之间通用的接口简化了图像采集的过程。它提供了许多方法使得MATLAB和硬件设备进行通信:Image Acquisition Tool, MATLAB 中的可编程接口和 Simulink 中的一个模块。每一个流程均提供了得到相机属性和控制的方法,使得用户可以根据不同的环境选用不同的方法实现想要的功能。
                     MATLAB与USB接口相机的现状.jpg

相关新闻