OpenCV在Zedboard上的移植
OpenCV编译
本文的前提是zynq交叉编译环境设置
- 下载opencv3.1.0源码,并解压
wget https://github.com/Itseez/opencv/archive/3.1.0.zip
- 在解压后的目录下新建两个目录:install,build,并新建
toolchain.cmake
文件,添加如下内容
set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_C_COMPILER arm-xilinx-linux-gnueabi-gcc) set(CMAKE_CXX_COMPILER arm-xilinx-linux-gnueabi-g++)
- 进入
bulid目录
进行命令配置,关联toolchain.cmake
文件并配置移植OpenCV的安装目录:
cmake -D CMAKE_TOOLCHAIN_FILE=toolchain.cmake -D CMAKE_INSTALL_PREFIX=/home/ubuntu/opencv-/install ../
注意此处应该更换为自己的实际目录名称。
- 生成Makefile文件
执行ccmake ./
进行OpenCV配置,将所有WITH开头的选项选成OFF(除了WITH_V4L为ON);按c键进行配置,g键产生Makefile
- 编译安装
通过make
编译,make install
进行安装;安装结束后Zedboard上的OpenCV库已经生成,在install
文件夹下。
OpenCV库移植
依次执行下面的命令,可以在指定的目录下生成opencv_lib.img
镜像文件,该文件可以在Zedboard上加载使用
cd /home/ubuntu/opencv_zynq/ // 生成镜像的目录 // 镜像的名字opencv_lib.img和大小80M,可以根据实际链接库的大小进行设置 mkfs.ext2 -F opencv_lib.img chmod go+w opencv_lib.img mount opencv_lib.img -o loop /mnt cp /home/ubuntu/opencv3.1.0/install/* /mnt // 复制相应的库的即将压缩的镜像中 chmod go-w opencv_lib.img umount /mnt
移植测试
测试代码,imgshow.cpp:
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; int main() { Mat img = imread("test.jpg"); // 创建一个名为 "Pic"窗口 namedWindow("Pic"); // 在窗口中显示图片 imshow("Pic", img); // 等待6000 ms后窗口自动关闭 waitKey(); }
makefile:
LINK_C = imgshow.cpp LINK_H = -I /opt/opencv-3.1/include/opencv -I /opt/opencv-3.1/include -I /opt/opencv-3.1/include/opencv2 LINK_LIB = -L /opt/opencv-3.1/lib target: arm-xilinx-linux-gnueabi-g++ -O2 -I./ -o imgshow_arm $(LINK_C) -Wall -lm -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs $(LINK_H) $(LINK_LIB) #finished make imgshow_arm
编译后生成imgshow_arm.o
将OpenCV库文件opencv_lib.img
、可执行文件edge_detection.o
和原图像放入U盘中,启动Zedboard,挂载U盘:
mount /dev/sda1 /mnt
将镜像文件opencv_lib.img
挂载到/usr/lib
文件夹中:
cd /usr mkdir lib mount /mnt/opencv_lib.img /usr/lib
运行可执行文件./imgshow_arm.o
OpenCV在Zedboard上的移植的更多相关文章
- OpenCV在ARM上的移植
OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】
[Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...
- OpenCV在ARM-linux上的移植过程遇到的问题3---共享库中嵌套库居然带路径【未解决】
[Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题3-共享库中嵌套库居然带路径[未解决] 标签(空格分隔): [Linux开发] 移植opencv到tq2440 一.下载open ...
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题2---CMAKE配置问题
实际上这里说的是移植的第一步,下载到源码后,我用的是opencv2.4.9,解压缩,然后可以利用cmake-gui来进行configure配置,这里面需要设置交叉编译的工具链,具体的可以参考[Linu ...
- 【Linux开发】OpenCV在ARM上的移植
与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方法很麻烦,不仔细操作很容易出错 ...
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题1---cvNamedWindow调用报错的问题
问题描述: 这个实际上是最后一部的问题,将生成的共享库文件放入到了/usr/local/opencv-arm/lib下,并且设置了LD_LIBRARY_PATH中为/usr/local/opencv- ...
- OPENCV在ARM平台的移植
两篇别人推荐给我的文章,我想直接复制过来,呵呵,但一想真不好,等我做一遍了再来写一遍.还是贴链接. OpenCV在ARM上的移植:http://www.cnblogs.com/emouse/archi ...
- zedboard上移植OPENCV库
zedboard上移植OPENCV库 之前做了很多移植OPENCV库的工作,但是需要包含的各种库,需要交叉编译,X264 ,JPGE ,FFMPGE等等 注意:在<嵌入式系统软硬件协同设计实战指 ...
- Qt4.8.5在ARM9上的移植
Qt4.8.5在ARM9开发板上的移植 以前移植过qtopia-embedded-2.2.0,俗称Qt/E,在早期的Qt框架中是使用X11桌面服务器系统,无法应用于嵌入式平台,为此产生了qtopia, ...
随机推荐
- css3 - 语言伪类选择器
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- vs项目添加链接文件
在vs2012(或以后版本)中,从一个项目中拖拽文件到另一项目,并按住alt键,会生成链接文件. 项目文件中会生成link节点. <ItemGroup> <Compile Inclu ...
- Mysql多线程性能测试工具sysbench 安装、使用和测试
From:http://www.cnblogs.com/zhoujinyi/archive/2013/04/19/3029134.html 摘要: sysbench是一个开源的.模块化的.跨 ...
- Codeforces Round #267 (Div. 2) B. Fedor and New Game
After you had helped George and Alex to move in the dorm, they went to help their friend Fedor play ...
- ANDROID STUDIO 2.2.3 DOWNLOAD FROM DL.GOOGLE.COM
立即开始使用 Android Studio Android Studio 包含用于构建 Android 应用所需的所有工具. 下载 ANDROID STUDIO2.2.3 FOR WINDOWS (1 ...
- Error: Cannot find module 'webpack'错误解决
$ npm install webpack -g $ npm install webpack-cli -g 全局安装webpack $ npm run dev Error: Cannot find m ...
- 转_Greenplum 数据库安装部署(生产环境)
Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...
- 【BZOJ1414/3705】[ZJOI2009]对称的正方形 二分+hash
[BZOJ1414/3705][ZJOI2009]对称的正方形 Description Orez很喜欢搜集一些神秘的数据,并经常把它们排成一个矩阵进行研究.最近,Orez又得到了一些数据,并已经把它们 ...
- SAM4E单片机之旅——6、LED闪烁之按钮控制
现在试试用按钮控制LED灯……让LED在一个按钮按下时亮起:弹起时灭掉. 主要目的是学习GPIO的输入及中断. 一. 电路 图中的J39-n是几个跳线插座,位置在开发板LCD附近,往下进行前要先确保跳 ...
- Geoffrey E. Hinton
https://www.cs.toronto.edu/~hinton/ Geoffrey E. Hinton I am an Engineering Fellow at Google where I ...