先说结论:
1. 下载homebrew。
2. 打开终端,输入“brew install opencv@2”。
3. 访达(Finder)里按command+shift+g,输入“/usr/local/Cellar/opencv@2”将文件“2.4.13.6”复制,放入/usr/local/opt,并改文件名为“opencv”。
4. 运行程序“BACF_Demo_single_seq.m”。
5. 如果提示缺失fhog,下载这个工具包,并把fhog文件复制到BACF文件夹下,再在matlab里将toolbox-master文件及子文件夹加入路径(右键该文件夹-添加到路径-选定的文件夹和子文件夹)。
Xcode我之前配置过,所以不知道需不需要下载command line tool或者python。如果确实有需要的话给我留言,再补发教程。
弄完之后觉得挺简单的东西,整整折磨了我一周。
由于这个程序是作者东拼西凑弄来的,所以注释也比较奇怪,也没有readme文件来指导。虽然作者说已经在windows,mac,linux系统下测试可用,但是还是因为作者的电脑已经把环境都配置好了,而我们的环境基本上是需要重新配置的,所以会耗费大量精力。
本文重点: mex, opencv-matlab, mac, BACF。
错误踩坑,加粗部分是对于结论的解释。
这部分主要是我的一些工作回顾和我所了解的粗浅原理,写给我自己看的,不加粗的可以略过。
下好程序之后发现不能运行,报错是关于mexResize找不到opencv。从网上找了无数教程,用“brew install opencv”下载好opencv,实验Xcode的编程,但是不行。事后发现,“brew install opencv”下载的是 opencv3,而目标的路径是“/usr/local/opt/opencv/lib”中的动态链接库。尝试把opencv3的链接库直接复制到当前文件夹下,并在MATLAB中输入“mex -g mexResize.cpp -largeArrayDims -I/Users/wes/Documents/MATLAB/kyamagu-mexopencv-22d459c/include -I/usr/local/Cellar/opencv/3.4.1_2/include -L/usr/local/Cellar/opencv/3.4.1_2/lib -llibopencv_core.3.4.1.dylib -llibopencv_imgproc.3.4.1.dylib”这里的文件路径都是我的路径,需要根据自己的情况进行适当的修改。
MATLAB官方文档是个好东西。其中-g可以不加。
关于mex文件你需要知道的。
其中,加入-I两项后,opencv和MxArray的报错基本消失了,一堆.hpp文件找不到的问题解决了。
但还是不行。
推测是因为dylib没有加入。
但是-ldylib总是不成功,总是没办法把opencv3的动态链接库加入。至今不知道原因。如果有知道原因的大神请指点一二。
于是采用了我最恶心的也是比较蠢的办法。
下载opencv2,不管别的,按照他的路径开始配置(他的路径再运行程序时报错中有)。
然后就是结论办法。所以用的是brew opencv@2,因为这样才能下opencv2,brew install opencv下的是opencv3。
文章除了结论实测有用之外,过程讲的很粗,发现自己做过一遍无用功之后是不太想写。理解了为什么网上的教程总是那么缺斤短两很少能直接拿来用。
有问题欢迎随时提问。
也欢迎大神指教如何在opencv3环境下进行配置。