一、CenOS安装matlab R2017b
https://blog.csdn.net/u012222078/article/details/78673066
注:
- 教程中的测试是不是安装成功应该放在安装破解文件之后执行。
- 首次运行matlab要用root权限
- MATLAB R2017b Linux 破解版
链接:https://pan.baidu.com/s/14LtiZB8I4TtjNI-l8Wi8QA 密码:5pzl
二、CenOS安装opencv 3.3.1
##2.1 安装依赖包
yum install gcc gcc-c++ gtk2-devel gimp-devel gimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devel libpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtool nasm
##2.2 安装步骤:
参考:博客园https://www.cnblogs.com/hc101/p/7890115.html
1).安装依赖:
sudo yum groupinstall “Development Tools” -y
sudo yum install gcc cmake gtk2-devel numpy pkgconfig -y
2).下载opencv3.3.1.zip文件到~/Downloads/文件夹:
GitHub:https://github.com/opencv/opencv/archive/3.3.1.zip
百度网盘:https://pan.baidu.com/s/1cpXbt0
3).解压opencv3.3.1.zip文件到当前文件夹(~/Downloads/):
cd ~/Downloads
unzip opencv3.3.1.zip
4).编译源文件和安装:
cd ~/Downloads/opencv-3.3.1
mkdir build
cd build
sudo cmake -D CMAKE_BUILD_TYPE=DEBUG -D CMAKE_INSTALL_PREFIX=/usr/local …
sudo make
sudo make install
【注】:
- 如需要下载opencv其他版本可前往https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/下载
- sudo cmake这一步如果报错"libc.so.6: version `GLIBC_2.14’ not found",参考:
https://www.cnblogs.com/erygreat/p/7223829.html
#三、安装mexopenCV 3.3.1
mexopencv是一个十分实用的matlab工具箱,为matlab提供了openCV大部分的函数,用户可以在matlab中调用编译好的函数。
##1. 下载解压
下载地址:https://github.com/kyamagu/mexopencv/tree/v3.3.1
注意:mexopencv版本要与opencv版本一致,否则编译会出错
下载mexopencv-3.3.1.zip到/usr/local/MATLAB/R2017b/toolbox(地址随意,这个只是举个栗子),unzip命令解压 unzip v3.3.1
##2. 修改文件的用户属性
sudo chown -R hyt:hyt mexopencv-3.3.1 #修改文件和文件夹的用户和用户组属性(-R ,可递归遍历子目录)
这里的hyt的我的用户名
##3. 编译
打开matlab,在matlab中输入:
addpath(genpath('/usr/local/MATLAB/R2017b/toolbox/mexopencv-3.3.1')) %将mexopencv添加到matlab路径
mexopencv.make('opencv_path', '/home/hyt/opencv-3.3.1/build') %编译 这里的路径是博客园链接里面build的路径
#四、应用–目标追踪DSST
##4.1 编译
编译mexResize.cpp 、MxArray.cpp
mex -lopencv_core -lopencv_imgproc -L/usr/local/include/ -I/usr/local/include/ mexResize.cpp MxArray.cpp
这里的-L/usr/local/include/ 和-I/usr/local/include/是由第2.2节第(4)步CMAKE_INSTALL_PREFIX=/usr/local 决定的。
参数注释:
-l<name>
Link with object library. On Linux, to "lib<name>.so".
-L<folder>
Add <folder> to the list of folders to search for
libraries specified with the -l option. Do not add a space
after this switch.
-I<pathname>
Add <pathname> to the list of directories to search for #include
files. Do not add a space after this switch.
##4.2 下断点
###语法
-
dbstop in file
-
dbstop in file at location
-
dbstop in file if expression
-
dbstop in file at location if expression
-
dbstop if condition
-
dbstop(b)
###说明 -
dbstop in file 在 file 中的第一个可执行代码行位置设置断点。当您运行 file 时,MATLAB® 进入调试模式,在断点处暂停执行并显示暂停位置对应的行。
-
dbstop in file at location 在指定位置设置断点。MATLAB 执行会在到达该位置之前立即暂停,除非该位置处是一个匿名函数。如果该位置处是匿名函数,则执行将在断点之后立即暂停。
-
dbstop in file if expression 在文件的第一个可执行代码行位置设置条件断点。仅在 expression 的计算结果为 true (1) 时暂停执行。
-
dbstop in file at location if expression 在指定位置设置条件断点。仅在 expression 计算结果为 true 时,于该位置处或该位置前暂停执行。
-
dbstop if condition 在满足指定的 condition(如 error 或 naninf)的行位置处暂停执行。与其他断点不同,您不在特定文件中的特定行设置此断点。MATLAB 会在发生指定的 condition 时在任何文件的任何行暂停执行。
-
dbstop(b) 用于恢复您之前保存到 b 的断点。包含保存的断点的文件必须位于搜索路径中或当前文件夹中。MATLAB 按行号分配断点;因此,文件中的行数必须与保存断点时的行数相同。
###举例
dbstop in main_running at 145
在代码的145行eval(funcName)暂停调试,再执行eval(funcName);则可以出现导致error的原因,不然屏幕上只会出现error,没有错误提示。