Opencv移植到DM8168

xiaoxiao2021-02-28  71

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 <cv.h> #include <highgui.h> #include <iostream> 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
转载请注明原文地址: https://www.6miu.com/read-52621.html

最新回复(0)