转自://cvnote.info/matlab-cv-ip-toolbox/
计算机视觉/图像处理研究中经常要用到Matlab,虽然其自带了图像处理和计算机视觉的许多功能,但是术业有专攻,在进行深入的视觉算法研究的时候Matlab的自带功能难免会不够用。本文收集了一些比较优秀的Matlab计算机视觉工具箱,希望能对国内的研究者有所帮助。
VLFeat:著名而常用项目网站://www.vlfeat.org
许可证:BSD
著名的计算机视觉/图像处理开源项目,知名度应该不必OpenCV低太多,曾获ACM Open Source SoftwareCompetition 2010一等奖。使用C语言编写,提供C语言和Matlab两种接口。实现了大量计算机视觉算法,包括:
-
常用图像处理功能,包括颜色空间变换、几何变换(作为Matlab的补充),常用机器学习算法,包括GMM、SVM、KMeans等,常用的图像处理的plot工具。
-
特征提取,包括 Covariantdetectors, HOG, SIFT,MSER等。VLFeat提供了一个DoG,Harris-Affine, Harris-Laplace并且可以提取SIFT或raw patches描述子。
函数作为框架,可以方便的统一所谓“co-variantfeature detectors”,包括了 -
超像素(Superpixel)分割,包括常用的Quickshift, SLIC算法等
-
高级聚类算法,比如整数KMeans:Integerk-means (IKM)、hierarchical version of integer k-means(HIKM),基于互信息自动判定聚类类数的算法Agglomerative Information Bottleneck (AIB)algorithm等
-
高维特特征匹配算法,随机KD树Randomizedkd-trees
可以在这里查看VLFeat完整的功能列表。
(欢迎访问计算机视觉研究笔记//cvnote.info或者关注新浪@cvnote)
MexOpenCV:让Matlab支持调用的OpenCV项目网站://www.cs.sunysb.edu/~kyamagu/mexopencv/
作者Kota Yamaguchi桑是石溪大学(StonyBrookUniversity)的PhD,早些时候自己搞了一套东西把OpenCV的代码编译成Matlab可用的mex接口,然后这个东西迅速火了。今年夏天这个项目被OpenCV吸收为一个模块,貌似是搞了一个GoogleSummer ofCode(GSoC)的项目,最近(大概是9、10月)已经merge到了OpenCV主包,有兴趣的可以到Github的OpenCV库下的module/matlab去玩一下,应该会在10月份的OpenCV3alpha里正式发布。现在OpenCV就同时有了Python和Maltab的binding(好强大)。具体的功能就不细说了,既然是OpenCV的binding,当然是可以使用OpenCV的绝大多数算法了。比如这样:
PeterKovesi的工具箱:轻量好用,侧重图像处理
项目网站://www.csse.uwa.edu.au/~pk/research/matlabfns/
这位Peter大哥目前在TheUniversity of WesternAustralia工作,他自己写了一套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:侧重机器视觉、三维视觉项目网站://www.petercorke.com/Machine_Vision_Toolbox.html
许可证:LGPL
以前没有用过这个工具箱,最近发现竟然非常强大,而且和我自己的工作还很相关。这个工具箱侧重机器视觉,作者是另一个Peter,PeterCorke在机器人界很有名,他在2011年写了一本书《Robotics,Vision &Control》介绍了机器视觉相关的颜色、相机模型、三维视觉、控制等研究,并配套这个工具箱。算法包括了大量常用的视觉和图像处理小函数,,这些就不提了,提几个别的工具箱一般没有的功能
-
Bag ofwords的Matlab实现
-
各种相机模型的实现,包括普通相机、鱼眼相机、Catadioptric相机模型等等。如果你做机器人视觉、挂在各种广角相机的话,这些模型实现会很有用
-
自带简单的相机标定功能
-
对极几何(Epipolar Geomtry)的相关算法函数
-
Plucker坐标的实现,做广义相机模型(Generalized camera model)很有用
Piotr's Image & Video Matlab Toolbox:侧重物体识别
项目网站://vision.ucsd.edu/~pdollar/toolbox/doc/index.html
许可证:Simple BSD
(补充一个工具箱)由UCSD的PiotrDollar编写,侧重物体识别(ObjectRecognition)检测相关的特征提取和分类算法。这个工具箱属于专而精的类型,主要就是Dollar的几篇物体检测的论文的相关算法,如果做物体识别相关的研究,应该是很好用的。同时它的图像操作或矩阵操作函数也可以作为Matlab图像处理工具箱的补充,功能主要包括几个模块:
-
channels模块,图像特征提取,包括HOG等,Dollar的研究工作提出了一种ChannelFeature的特征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 ChannelFeatures", BMVC 2009.
DIPUM Toolbox:经典教材配套项目地址://www.imageprocessingplace.com/DIPUM_Toolbox_2/DIPUM_Toolbox_2.htm
冈萨雷斯著名的图像处理教材《数字图像处理》的配套工具包,主要是书中图像处理算法的实现,名气自然是不必说了,网上可以免费下到加密后的p文件放在Matlab下面用,作为图像处理入门的上手玩具。
MATLAB Functions for Multiple View Geometry:又一个经典教材配套
项目网站://www.robots.ox.ac.uk/~vgg/hzbook/code/
许可证:MIT
又是一本大名鼎鼎的教材《计算机视觉中的多图几何》(Multiple View Geometry in ComputerVision),值得所有做三维视觉的研究者好好研究的书,国内很早就翻译了中文版。作者Zisserman提供了部分书中算法的Matlab实现,是深入理解书中理论的非常好的辅助材料。
其他的工具箱
-
DIPImage &DIPLib,提供Matlab和C接口的图像处理功能,比较早,现在估计很少有人用或者知道了吧?
-
Matlab CVPR toolbox,计算机视觉和模式识别相关的Matlab功能,好像没什么人用。
-
相关领域的工具箱,比如做机器学习的、做Markov随机场的等等,以后有机会写一下。
-
特定功能的工具箱,比如相机标定工具箱,这个可推荐的还阵挺多,以后有机会写一下。
-
这个链接里可以找到一些Matlab的开源工具箱。
转载本文请联系原作者获取授权,同时请注明本文来自吴萌科学网博客。
链接地址://blog.sciencenet.cn/blog-347785-920014.html