matlab在学校科研,仿真及基于模型开发的工作中有重要作用,在图像处理方面由于省去了复杂的上位机开发流程,因此可以让用户快速开发验证算法,下面简要介绍其在图像处理方面的应用。
matlab开发图像处理算法的流程主要是,根据需要写全图像处理计算步骤,每一步的实现细节和预期计算结果写详细包括伪代码,matlab编程实现,计算结果可视化。步骤也同样适用于python开发。
matlab读入图像,imread可以读入任意格式的图像,csvread可以读入csv文件数据。读入后的数据可以imshow显示灰度图和三维图对数据进行查看。imwrite可以把修改后的图写出文件保存。
计算步骤编写,以tof的四相位深度计算为例,matlab的计算做到了极简化,atan(a,b),即可计算所有像素点相位,可以直接对矩阵进行操作。系数矩阵求解A=b\H,可以直接左除求解。通常不需要for循环即可对矩阵每个元素进行计算。计算后的变量结果可以在工作空间窗口查看,任意双击变量以列表形式呈现,可以看矩阵或数组的每一个元素,也可以选中某块元素区域进行局部可视化。定义变量不需要指定类型,但是索引必须一致。支持按位操作,左移右移操作。
Matlab支持很多工具,对相机标定算法来说比opencv精度要高,在工具栏可以选择单目或双目标定工具,指定棋盘格大小和读入图片路径即可自动计算内外参数,并输出重投影误差,删除误差大的图片可以提高计算精度。除了相机标定工具外,也支持神经网络计算工具,可以加载预训练网络模型,可视化网络结构,输出训练后模型文件。另外还有结构光工具,slam工具和信号处理工具。配合图像采集工具可以和图像采集卡连接,支持和fpga硬件连接。
Matlab内置很多算法,可以直接调用快速验证算法原理,例如曲线曲面拟合算法,相机标定算法,矩阵分解,高斯牛顿梯度下降计算等。其中多项式曲线拟合最高支持10阶,曲面拟合支持5阶。可以用edit命令查看某个函数的计算步骤,help文档可以查看算法说明和相关引用论文出处。
Matlab支持软件部署,编写完成的算法可以导出为独立的可执行应用程序,拷贝到目标机独立运行,也可以生成动态链接库,同时要用命令导出程序运行依赖环境。在目标机运行时要先运行初始化matlab依赖环境,依赖环境包含本算法对应的所有头文件和依赖库,可以在vs中调用matlab接口进行环境初始化,之后调用算法接口。也可以部署到嵌入式平台,用代码生成工具生成嵌入式程序部署到stm32平台。