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

opencv3.1.0_arm下载

opencv_lib.img镜像文件

OpenCV在Zedboard上的移植的更多相关文章

  1. OpenCV在ARM上的移植

    OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...

  2. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】

    [Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...

  3. OpenCV在ARM-linux上的移植过程遇到的问题3---共享库中嵌套库居然带路径【未解决】

    [Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题3-共享库中嵌套库居然带路径[未解决] 标签(空格分隔): [Linux开发] 移植opencv到tq2440 一.下载open ...

  4. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题2---CMAKE配置问题

    实际上这里说的是移植的第一步,下载到源码后,我用的是opencv2.4.9,解压缩,然后可以利用cmake-gui来进行configure配置,这里面需要设置交叉编译的工具链,具体的可以参考[Linu ...

  5. 【Linux开发】OpenCV在ARM上的移植

    与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方法很麻烦,不仔细操作很容易出错 ...

  6. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题1---cvNamedWindow调用报错的问题

    问题描述: 这个实际上是最后一部的问题,将生成的共享库文件放入到了/usr/local/opencv-arm/lib下,并且设置了LD_LIBRARY_PATH中为/usr/local/opencv- ...

  7. OPENCV在ARM平台的移植

    两篇别人推荐给我的文章,我想直接复制过来,呵呵,但一想真不好,等我做一遍了再来写一遍.还是贴链接. OpenCV在ARM上的移植:http://www.cnblogs.com/emouse/archi ...

  8. zedboard上移植OPENCV库

    zedboard上移植OPENCV库 之前做了很多移植OPENCV库的工作,但是需要包含的各种库,需要交叉编译,X264 ,JPGE ,FFMPGE等等 注意:在<嵌入式系统软硬件协同设计实战指 ...

  9. Qt4.8.5在ARM9上的移植

    Qt4.8.5在ARM9开发板上的移植 以前移植过qtopia-embedded-2.2.0,俗称Qt/E,在早期的Qt框架中是使用X11桌面服务器系统,无法应用于嵌入式平台,为此产生了qtopia, ...

随机推荐

  1. 最好的10个移动 Web 应用程序开发框架

    在近期几年里,移动互联网快速发展.市场潜力巨大. 继计算机.互联网之后,移动互联网正掀起第三次信息技术革命的浪潮,新技术.新应用不断涌现.今天这篇文章向大家推荐10大优秀的移动Web开发框架.帮助开发 ...

  2. Android开发——进程间通信之AIDL(二)

    0.  前言 不论是Android还是其它操作系统.都会有自己的IPC机制.所谓IPC(Inter-Process Communication)即进程间通信.首先线程和进程是非常不同的概念,线程是CP ...

  3. Plug and Play

    http://baike.baidu.com/view/33701.htm 即插即用 编辑   PNP是Plug-and-Play(即插即用)的缩写.它的作用是自动配置(低层)计算机中的板卡和其他设备 ...

  4. python-tornado操作

    Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了能有效 ...

  5. HDU-4930 Fighting the Landlords 多校训练赛斗地主

    仅仅须要推断一个回合就能够了,枚举推断能够一次出全然部牌或者大过对面的牌的可能,注意的是4张同样的牌带两张牌的话是能够被炸弹炸的. #include <iostream> #include ...

  6. cvpr2017-code-etc

    cvpr2017: code:   http://staffhome.ecm.uwa.edu.au/~00053650/code.html

  7. datatables参数配置详解

    //@translator codepiano //@blog codepiano //@email codepiano.li@gmail.com //尝试着翻译了一下,难免有错误的地方,欢迎发邮件告 ...

  8. [转]JavaScript

    javascript 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border on ...

  9. 安装Ubuntn 和 pycharm

    Ubuntu安装之python开发   什么??公司要用Ubuntu(乌班图)?不会用??怎么进行python开发??? 乌班图操作系统下载地址:http://releases.ubuntu.com/ ...

  10. 【BZOJ2339】[HNOI2011]卡农 组合数+容斥

    [BZOJ2339][HNOI2011]卡农 题解:虽然集合具有无序性,但是为了方便,我们先考虑有序的情况,最后将答案除以m!即可. 考虑DP.如果我们已经知道了前m-1个集合,那么第m个集合已经是确 ...