Opencv移植到DM8168

OPENCV移植到DM8168,分两步,第一步首先将OPENCV移植到X86电脑上,第二步,将OPENCV移植于DM8168上。
第一步:X86上opencv安装
1安装cmake
# apt-get install cmake
检查是否安装成功
# cmake -version
2 安装对应的库
# apt-get install libgtk2.0-dev
# apt-get install pkg-config
3 安装g++
# apt-get install g++
4 下载并解压opencv
解压:
#tar jxvf OpenCV-2.3.1.tar.bz2


将OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h文件第63行的源码:将fabsl()修改为fabs()


5 利用Cmake配置opencv
#cmake-gui
出现了一个gui的控件窗口
在where is the source code: 选择解压的opencv所在的目录
Where to build the binaries:/usr/local/X86-opencv  (注意此处新建了一个X86-opencv文件夹)
点configure出现新的对话框
第一个选择项为:Unix Makefiles
第二个选择项为:Use default native compilers
点Finish
回到以前对话框
将CMAKE_BUILD_TYPE 设置为Release
CMAKE_INSTALL_PREFIX 设置为 /usr/local/X86-opencv
将配置中WITH_QT勾选
将配置 WITH_TIFF去掉
然后点 Generate按键  生成配置文件
6 编译
进入X86-opencv目录
#make
#make  install
7 配置环境参数
#sudo gedit /etc/ld.so.conf.d/opencv.conf
添加 /usr/local/X86-opencv/lib
# sudo ldconfig


更改环境变量
# sudo gedit /etc/bash.bashrc
添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/X86-opencv/pkgconfig 
export PKG_CONFIG_PATH
#source /etc/bash.bashrc 
4 配置pkgconfig
进入/usr/local/X86-opencv/目录  新建一个pkgconfig目录
进入此pkgconfig目录
建立一个opencv.pc文件(此文件在电脑上找的到(/usr/local/X86-opencv/unix-install/)  利用 # find / -name “opencv.pc”)
opencv.pc内容


# Package Information for pkg-config
prefix=/usr/local/X86-opencv
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include


Name: OpenCV
Description: Open Source Computer Vision Library
Version: 2.3.1
Libs: -L${libdir} -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
Cflags: -I${includedir_old} -I${includedir_new}




8 测试
拷贝步骤4中解压的的/OpenCV-2.3.1/samples/c 将c文件夹拷贝出来。拷贝完成后进入这个文件夹:
# chmod +x build_all.sh
# ./build_all.sh
# ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
出现人脸识别的结果。


第二步:移植OPENCV于DM8168
1 利用Cmake配置opencv
#cmake-gui
出现了一个gui的控件窗口
在where is the source code: 选择解压的opencv所在的目录
Where to build the binaries:/usr/local/arm-opencv  (注意此处新建了一个arm-opencv文件夹)
点configure出现新的对话框
第一个选择项为:Unix Makefiles
第二个选择项为:Specify options for cross-compiling
点Next
Operating System填 arm-linux
Compliers 中的C和C++分别选对应的交叉编译器所在的文件  arm-none-linux-gnueabi-gcc和arm-none-linux-gnueabi-g++
Target Root :选交叉编译器的目录
点 Finish 回到以前对话框


将CMAKE_BUILD_TYPE 设置为Release
CMAKE_INSTALL_PREFIX 设置为 /usr/local/arm-opencv
将配置中WITH_QT勾选
将配置 WITH_TIFF去掉
然后点 Generate按键  生成配置文件
2 编译
进入arm-opencv目录
此时需要修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread –lrt
CMAKE_EXE_LINKER_FLAGS:STRING= -lpthread –lrt


#make
#make  install
3 配置环境参数
#sudo gedit /etc/ld.so.conf.d/opencv.conf
添加 /usr/local/arm-opencv/lib
# sudo ldconfig
更改环境变量
# sudo gedit /etc/bash.bashrc
添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/X86-opencv/pkgconfig:/usr/local/ arm-opencv/pkgconfig 
export PKG_CONFIG_PATH
#source /etc/bash.bashrc 
4 配置pkgconfig
进入/usr/local/arm-opencv/目录  新建一个pkgconfig目录
进入此pkgconfig目录
建立一个arm-opencv.pc文件
将/usr/local/X86-opencv/pkgconfig的opencv.pc文件中的内容拷贝到arm-opencv.pc文件,修改第一行prefix=/usr/local/arm-opencv.


5 lib问题
将/usr/local/arm-opencv/lib/下的所有文件拷贝到/usr/lib和 交叉编译器所在的lib下


6 测试
写一个test.cpp
内容


#include
#include
#include


using namespace std;


int main(int argc, char *argv[])
{
printf("zenggang");


return 0;
}


写一个test.sh
内容
arm-none-linux-gnueabi-g++ `pkg-config --cflags arm-opencv` `pkg-config --libs arm-opencv` test.cpp -lpthread -lrt -o test 


执行命令 
#sh  test.sh


7  运行DM8168
将生成的test复制于相关目录下
将上述生成的lib文件夹(arm-opencv中的lib)复制于此test所在的当前目录的后两个目录下,(比如 /home/root/demo/test,  test在demo目录下,lib目录就在/home目录下了)
执行 ./test

你可能感兴趣的:(DM8168-EZSDK,DM8168,opencv,移植)