cenOS 安装opencv(for matlab)

一、CenOS安装matlab R2017b

https://blog.csdn.net/u012222078/article/details/78673066
注:

二、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,没有错误提示。

猜你喜欢

转载自blog.csdn.net/weixin_38493025/article/details/81624040