您的位置:首页 > 理论基础

Matlab计算机视觉/图像处理工具箱推荐

2016-04-25 16:39 489 查看


Matlab计算机视觉/图像处理工具箱推荐

发表于2014年4月9日luffylee

计算机视觉/图像处理研究中经常要用到Matlab,虽然其自带了图像处理和计算机视觉的许多功能,但是术业有专攻,在进行深入的视觉算法研究的时候Matlab的自带功能难免会不够用。本文收集了一些比较优秀的Matlab计算机视觉工具箱,希望能对国内的研究者有所帮助。


VLFeat:著名而常用

项目网站:http://www.vlfeat.org

许可证:BSD

著名的计算机视觉/图像处理开源项目,知名度应该不必OpenCV低太多,曾获ACM Open Source Software Competition 2010一等奖。使用C语言编写,提供C语言和Matlab两种接口。实现了大量计算机视觉算法,包括:

常用图像处理功能,包括颜色空间变换、几何变换(作为Matlab的补充),常用机器学习算法,包括GMM、SVM、KMeans等,常用的图像处理的plot工具。

特征提取,包括 Covariant detectorsHOGSIFT,MSER等。VLFeat提供了一个vl_covdet() 函数作为框架,可以方便的统一所谓“co-variant
feature detectors”,包括了DoG, Harris-Affine, Harris-Laplace并且可以提取SIFT或raw patches描述子。

超像素(Superpixel)分割,包括常用的Quick shiftSLIC算法等

高级聚类算法,比如整数KMeans:Integer k-means (IKM)、hierarchical version of integer k-means (HIKM),基于互信息自动判定聚类类数的算法Agglomerative Information Bottleneck (AIB) algorithm等

高维特曾匹配算法,随机KD树Randomized kd-trees

可以在这里查看VLFeat完整的功能列表。

(欢迎访问计算机视觉研究笔记http://cvnote.info或者关注新浪@cvnote


MexOpenCV:让Matlab支持调用的OpenCV

项目网站:http://www.cs.sunysb.edu/~kyamagu/mexopencv/

作者Kota Yamaguchi桑是石溪大学(Stony Brook University)的PhD,早些时候自己搞了一套东西把OpenCV的代码编译成Matlab可用的mex接口,然后这个东西迅速火了。今年夏天这个项目被OpenCV吸收为一个模块,貌似是搞了一个Google
Summer of Code(GSoC)的项目,最近(大概是9、10月)已经merge到了OpenCV主包,有兴趣的可以到Github的OpenCV库下的module/matlab去玩一下,应该会在10月份的OpenCV
3 alpha里正式发布。现在OpenCV就同时有了Python和Maltab的binding(好强大)。具体的功能就不细说了,既然是OpenCV的binding,当然是可以使用OpenCV的绝大多数算法了。比如这样:

% load an image (Matlab)

I = imread(‘cameraman.tif’);

% compute the DFT (OpenCV)

If = cv.dft(I, cv.DFT_COMPLEX_OUTPUT);

 




Peter Kovesi的工具箱:轻量好用,侧重图像处理

项目网站:http://www.csse.uwa.edu.au/~pk/research/matlabfns/

这位Peter大哥目前在The University of Western Australia工作,他自己写了一套Matlab计算机视觉算法,所谓工具箱其实就是许多m文件的集合,全部Matlab实现,无需编译安装,支持Octave(如果没有Matlab的话,有了这个工具箱也可以在Octave下进行图像处理了)。别看这位大哥单枪匹马,人家的工具箱可是相当有名,研究时候需要哪个Matlab的计算机视觉小功能,直接到他家主页上下几个m文件放在自己文件夹就好了。这个工具箱主要以图像处理算法为主,附带一些三维视觉的基本算法,列一些包括的功能:

Feature Detection via Phase Congruency,求达人解释这个是啥

Spatial Feature Detection,Harris、Canny之类的特征算法

Edge Linking and Line Segment Fitting,边缘特征和线特征的各种操作

Image Denoising,图像降噪

Surface Normals to Surfaces,从法向量积分出表面

Scalogram Calculation,求达人解释这个是啥

Anisotropic diffusion,著名的保边缘平滑算法

Frequency Domain Transformations,傅立叶变换

Functions Supporting Projective Geometry,透视几何、三维视觉的一些算法

Feature Matching、特征匹配

Model Fitting and Robust Estimation、RANSAC

Fingerprint Enhancement,指纹图像增强

Interesting Synthetic Images,一些好玩儿的图像生成算法

Image Blending,图像融合

Colourmaps and colour conversions,颜色空间算法

可以在网站上看到全部功能的介绍和下载,非常推荐试一下,也可以学到不少算法。


Machine Vision Toolbox:侧重机器视觉、三维视觉

项目网站:http://www.petercorke.com/Machine_Vision_Toolbox.html

许可证:LGPL

以前没有用过这个工具箱,最近发现竟然非常强大,而且和我自己的工作还很相关。这个工具箱侧重机器视觉,作者是另一个Peter,Peter Corke在机器人界很有名,他在2011年写了一本书《Robotics,
Vision & Control》介绍了机器视觉相关的颜色、相机模型、三维视觉、控制等研究,并配套这个工具箱。算法包括了大量常用的视觉和图像处理小函数,,这些就不提了,提几个别的工具箱一般没有的功能

Bag of words的Matlab实现

各种相机模型的实现,包括普通相机、鱼眼相机、Catadioptric相机模型等等。如果你做机器人视觉、挂在各种广角相机的话,这些模型实现会很有用

自带简单的相机标定功能

对极几何(Epipolar Geomtry)的相关算法函数

Plucker坐标的实现,做广义相机模型(Generalized camera model)很有用





Piotr’s Image & Video Matlab Toolbox:侧重物体识别

项目网站:http://vision.ucsd.edu/~pdollar/toolbox/doc/index.html

许可证:Simple BSD

(补充一个工具箱)由UCSD的Piotr Dollar编写,侧重物体识别(Object Recognition)检测相关的特征提取和分类算法。这个工具箱属于专而精的类型,主要就是Dollar的几篇物体检测的论文的相关算法,如果做物体识别相关的研究,应该是很好用的。同时它的图像操作或矩阵操作函数也可以作为Matlab图像处理工具箱的补充,功能主要包括几个模块:

channels模块,图像特征提取,包括HOG等,Dollar的研究工作提出了一种Channel
Feature的特征1,因此这个channels主要包括了提取这一特征需要的一些基本算法梯度、卷及等基本算法

classify模块,一些快速的分类相关算法,包括random ferns, RBF functions,
PCA等

detector模块,与Channel Feature特征对应的检测算法1

filters模块,一些常规的图像滤波器

images模块,一些常规的图像、视频操作,有一些很实用的函数

matlab模块,一些常规的Matlab函数,包括矩阵计算、显示、变量操作等,很实用

videos模块,一些常规的视频操作函数等

1. P. Dollár, Z. Tu, P. Perona and S. Belongie, “Integral Channel
Features”, BMVC 2009.


DIPUM Toolbox:经典教材配套

项目地址:http://www.imageprocessingplace.com/DIPUM_Toolbox_2/DIPUM_Toolbox_2.htm

冈萨雷斯著名的图像处理教材《数字图像处理》的配套工具包,主要是书中图像处理算法的实现,名气自然是不必说了,网上可以免费下到加密后的p文件放在Matlab下面用,作为图像处理入门的上手玩具。




MATLAB Functions for Multiple View Geometry:又一个经典教材配套

项目网站:http://www.robots.ox.ac.uk/~vgg/hzbook/code/

许可证:MIT

又是一本大名鼎鼎的教材《计算机视觉中的多图几何》(Multiple View Geometry in Computer Vision),值得所有做三维视觉的研究者好好研究的书,国内很早就翻译了中文版。作者Zisserman提供了部分书中算法的Matlab实现,是深入理解书中理论的非常好的辅助材料。




其他的工具箱

DIPImage
& DIPLib,提供Matlab和C接口的图像处理功能,比较早,现在估计很少有人用或者知道了吧?

Matlab
CVPR toolbox,计算机视觉和模式识别相关的Matlab功能,好像没什么人用。

相关领域的工具箱,比如做机器学习的、做Markov随机场的等等,以后有机会写一下。

特定功能的工具箱,比如相机标定工具箱,这个可推荐的还阵挺多,以后有机会写一下。

这个链接里可以找到一些Matlab的开源工具箱。

转自 计算机视觉研究笔记
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计算机视觉