使用Octave规避Matlab版权问题

Octave,全称GNU Octave。看到GNU三个字母,那么就知道它是自由使用的、免费的、开源的、全平台的。Octave设计的初衷就是提供一套可以提单Matlab的软件。所以严格按照Matlab基础语法编写的代码是可以不经修改直接在Octave运行的。

Matlab是商业软件,所以在一些专业领域的工具箱,以及GUI界面方面比Octave要优秀。Matlab动辄20G,而Octave只有200M,并且Octave已经集成了很多常用的工具箱(信号仿真,滤波器设计,图像处理,计算机视觉等等),如果不是Matlab比较新的功能,Octave在使用上和Matlab是没有差别的。(近年Matlab语法有些小改动,不过无伤大雅)

阅读更多

Matlab调用OpenCV的三种方式

Matlab本身有着出色的图像算法分析工具,但有时我们出于速度和开发的需要,在matlab中调用opencv辅助处理,那么如何在matlab中调用opencv呢?这篇博客介绍三种方式:Matlab嵌入C++,使用mexOpenCV第三方工具,使用Matlab官方提供的Computer Vision Toolbox中的OpenCVInterface。

阅读更多

Matlab解析DNG格式图像

DNG是一种很灵活的图像格式,是在Tiff基础上拓展来的,随着传感器技术、后期图像处理能力的增强,我们很多时候直接将ISP采集的图像数据直接Dump下来,不做任何处理,这就是RAW图,同时我们把处理RAW图需要必要信息存下来(Bayer Pattern、白平衡、噪声水平等),然后我们就可以进行后期处理了。总之,DNG是一种RAW图格式,其中除了数据段之外,有很多标签信息。

阅读更多

Matlab与C++混合编译之Matlab版本选择

Matlab中混编C++可以在提高代码效率的同时保持良好的脚本调用,在Matlab中可以用mex来编译C++代码,mex的命令怎么用可以直接doc mex看到。这篇博客主要因为博主需要跨平台编译,刚好遇到Matlab版本不同而产生的一些奇奇怪怪的问题,主要是记录博主自己踩过的坑。

阅读更多

MatConvNet深度学习框架简介及GPU使用注意事项

        MatConvNet是一个基于Matlab的深度学习框架,在计算部分,最底层混编了C/C++或者CUDA C,这使得其速度并不是特别慢。就使用体验来说,MatConvNet是非常优秀的,借助于Matlab,定义网络,使用现有模型以及数据可视化都非常方便。

        由于MatConvNet文档和Demo都比较完备,所以这篇博客主要介绍一些GPU的配置细节。

阅读更多

Matlab使用vision.TextInserter在图像中嵌入字符

        使用Matlab处理图像的时候,如果需要将文字或者图形嵌入图像中,就需要用到vision工具集了,如果嵌入的是文字,那么就要使用vision.TextInserter,这个在新版本的Matlab中提供了insertText函数,与其功能差不多,不过vision.TextInserter要强大一些,insertText可以修改文字背景色块但是不能修改字体。

阅读更多

Matlab解析pfm格式图像

        关于pfm格式,从来没有官方权威的定义,但是常常在一些场合用到,如生物医学成像,红外成像等,尤其是其浮点方式的存储的位图使得其在科研和学习场合应用都很方便,Middlebury数据库中的视差图像就是以pfm格式进行存储的。

阅读更多