Archive

Archive for June, 2011

Linux下Matlab使用Mex调用OpenCV库函数

June 17, 2011 Leave a comment

唉,用CPP+OpenCV2.2写代码,想调到Matlab下方便调参数和进一步分析。于是,就有了下面的工作。

mex基础就不多说了。首先,自己用mex标准写一个A.cpp函数。然后把乱七八糟的*.h, *.cpp都放到同一个目录下。

Matlab中输入mex -v可以看到一个FILE=xxx/mexopts.sh的文件,直接右击该地址,打开即可修改mex的Makefile文件。

我的机器是32位Linux,于是找到glnx86,里面加上
CXXFLAGS=”$CXXFLAGS -I /usr/local/include/opencv”
CXXFLAGS -L /usr/loca/lib”
CXXLIBS=”$CXXLIBS -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_video -lopencv_features2d -lopencv_ml -lopencv_highgui -lopencv_objdetect -lopencv_contrib -lopencv_legacy”

接下来,mex A.cpp *.cpp即可编译成功!

只是,运行A时发现两个错误:

  1. `GLIBCXX_3.4.11′ not found opencv
    这是因为Matlab目录下自带libstdc++.so的问题,将其软链接到/usr/lib/libstdc++.so.6.0.13即可。
  2. Undefined symbol: _ZN8QMapData10createDataEi.
    这是由于在编译安装OpenCV2.2时选择了With_QT,重新编译安装OpenCV,将With_QT关掉,即可解决。

于是,就可以欢快地在Matlab里面使用mex调用OpenCV2.2了。

 

 

Categories: Vision

Linux下GCC配制安装OpenCV2.2

June 17, 2011 Leave a comment

现在都在Ubuntu下面工作了,于是必须得装个OpenCV才行。Intel OpenCV 2.2 是目前的最新版。

  1. 下载OpenCV 2.2,地址http://www.opencv.org.cn/download/OpenCV-2.2.0.tar.
  2. 安装cmake
    sudo apt-get install cmake
    sudo apt-get install cmake-qt-gui
  3. 打开cmake
    sudo cmake-gui
    其中,Browse Source对应源码文件夹,Browse Build对应OpenCV-build文件夹。点configure,再点Generate就可以了。
  4. 进入OpenCV-build,运行sudo make
  5. 安装,输入sudo make install

这样就完成了!

Categories: Linux, Vision

Ubuntu缺少libstdc++-libc6.1-1.so.2

June 16, 2011 Leave a comment

这几天在用feret数据集。运行里面的文件发现缺少libstdc++-libc6.1-1.so.2。libstdc++-libc需要手动下载deb包安装。下载地址是http://packages.ubuntu.com/dapper/i386/libstdc++2.10-glibc2.2/download

但是,安装后在/usr/lib/里只有libstdc++-libc6.2-2.so.3。只有做链接:
sudo ln -s /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++-libc6.1-1.so.2

Categories: Linux, Vision