【转载】opencv2.4.9移植迅为4412开发板文档

2023-11-07 12:10

本文主要是介绍【转载】opencv2.4.9移植迅为4412开发板文档,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文转自:http://www.topeetboard.com

 

OpenCV是目前开源项目中最著名的基于机器视觉方向的图像处理的开发包,目前已经有被移植到嵌入式Linux环境上。本文介绍了OpenCV交叉编译的基本步骤。

一、编译环境及库文件

linux环境:ubuntu12.04

交叉编译:4.3.2

arm板子:iTOP4412开发板

 

libz:        

libjpeg:       

libpng:       

libyasm:      

opencv:       

libx264:      

libxvid:      

lffmpeg:       

cmake:       

二、opencv-2.4.9的移植过程

1libz的交叉编译:

# ./configure --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/zlib-install --shared  

修改makefile

CC=arm-linux-gcc

AR=arm-linux-ar

RANLIB=arm-linux-ranlib

CDSHARED=arm-linux-gcc -shared -wl, -soname,libz.so.1,--version-script,zl lib.map (不一样没关系只改前面编译器)

#make 

#make install

 

2libjpeg的交叉编译:

#./configure --host=arm-linux --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libjpeg-install --enable-shared --enable-static

#make

#make install

 

3libpng的交叉编译:

#./configure --host=arm-linux --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libpng-install --enable-shared --enable-static 

#make

#make install

 

4yasm的交叉编译

#./configure --host=arm-linux --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/yasm-install --enable-shared --enable-static

#make

#make install

 

5libx264的交叉编译:

#CC=arm-linux-gcc ./configure --enable-shared --host=arm-linux --disable-asm --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libx264-install

#make

#make install

 

6libxvid的交叉编译:

#cd build/generic

#./configure --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libxvid-install --host=arm-linux  --disable-assembly

#make

#make install

 

7ffmpeg的交叉编译:

./configure --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/ffmpeg-install --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm --disable-stripping --target-os=linux --enable-libx264 --enable-libxvid --cc=arm-linux-gcc --enable-swscale

#make

#make install

 

**************************************************************************

到此所有依赖库编译安装完成

安装目录在:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/

每个库有各自的-install文件夹

新建文件夹

#mkdir /usr/local/arm/4.3.2/arm-none-linux-gnueabi/opencv-depend/

然后拷贝所有-install下的lib下的文件到opencv-depend目录下

***************************************************************************

8.cmake-gui安装(自己下载)

到官网上下载已经编译好的cmake-2.8.8-Linux-i386.tar,gz,解压就可以了

 

9opencv2.4.9的交叉编译:

用到的主要目录说明:

交叉编译工具链所在目录     /usr/local/arm/4.3.2/

安装opencv的目录         /usr/local/arm/opencv-install

opencv源码所在目录          /usr/local/arm/opencv2.4.9

编译好的opencv库所在目录      /usr/local/arm/opencv-2.4.2/build

 

10.配置cmake(这一步的目的是配置编译器并让cmake-gui找到所有共享库不然cmake-gui会少很多选项因为没有发现依赖库,例如你直接cmake-gui就没有v4l选项,直接导致移植成功后无法打开摄像头,别问我是怎么知道的..说多了都是泪啊)

 

#cd opencv-2.4.9

#mkdir build

#cd build

#vim toolchain.cmake

内容如下

 

###########user defined#############

set( CMAKE_SYSTEM_NAME Linux )

set( CMAKE_SYSTEM_PROCESSOR arm )

set( CMAKE_C_COMPILER arm-none-linux-gnueabi-gcc )

set( CMAKE_CXX_COMPILER arm-none-linux-gnueabi-g++ )

###########user defined#############

set( CMAKE_FIND_ROOT_PATH" /usr/local/arm/4.3.2/arm-none-linux-gnueabi/opencv-depend/ " )

set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )

set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )

set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )

######################################

然后执行这一步

#cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake ../

 

配置cmake-gui

#cmake-gui

 






 

 

选择源代码目录/usr/local/arm/opencv-2.4.9/

选择Build目录:/usr/local/arm/opencv-2.4.2/build

点击Configure,保持generatorUnix Makefiles(不用改),选择Specify options for cross-compiling(最后一个选项),点击Next,

Operating System填写arm-linux

C Compilers填写/usr/local/arm/4.3.2/bin/arm-linux-gcc

C++ Compilers填写/usr/local/arm/4.3.2/bin/arm-linux-g++

 

程序库的Target Root填写/usr/local/arm/4.3.2/

然后点击Finish

 

默认安装目录为/usr/local,改为/usr/local/arm/opencv-install(因为之前安装了x86opencvusr/local为了避免弄混了)

CMAKE_INSTALL_PREFIX    /usr/local/arm/opencv-install

修改选项(如果不改make会出现很多错误因为找不到库)

 

去掉WITH_CUDA

 

去掉WITH_GTK

 

去掉WITH_1394

 

去掉WITH_GSTREAMER

 

去掉WITH_LIBV4L(后边有v4l这个没用不要选)

 

去掉WITH_TIFF

 

去掉BUILD_OPENEXR

 

去掉WITH_OPENEXR

 

去掉BUILD_opencv_ocl

 

去掉WITH_OPENCL

 

完成后Generate

 

修改CMakeCache.txtCMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt

点击Generate生成Makefile(203行附近有小引号可以带着像这样'-lpthread -lrt')

 

#make(出现错误一般是选多了或者前面做错了make clean)

#make install

************************************************************************************************

最后

还有一步特别关键 ,需要把/usr/local/arm/opencv-install/lib 下所有的动态链接库 拷贝到交叉编译下/usr/local/arm/4.3.2/arm-non-linux-gnueabi/lib

************************************************************************************************

三、测试

 

测试程序:(qt设置)

 

 






 

.拷贝到开发板运行

1./usr/local/arm/opencv-install/lib/下的库拷贝到开发板/lib/下

2.#mkdir /usr/local/arm/opencv-install/lib/

并拷贝上述库到mkdir /usr/local/arm/opencv-install/lib/

3.拷贝opencv-depend下库到开发板/lib/

4.拷贝测试程序到开发板/bin/目录下赋予可执行权限chmod  777 CamaraGet

5. cd /bin/

 ./ CamaraGet –qws &

(如果提示库找不到原因是你编译的库建立了类似快捷方式的东西而你拷贝的库没有拷贝快捷方式所以程序连接的时候找不到快捷方式,可以将你的库改名成提示缺少的库名(快捷方式名)基本上就是去掉版本后缀例如

( mv libopencv_core.so.2.4.9  libopencv_core.so.2.4 )

以下是文件目录示例

 


 




.说明

开发板USB摄像头预览节点是/dev/video4  opencv调cam = cvCreateCameraCapture(204); 这个函数的意思是打开video4网上很多讨论括号里的参数只要有: 0 ,  -1,  202单要根据你自己的情况改,实测204(在板子上可以)



这篇关于【转载】opencv2.4.9移植迅为4412开发板文档的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/363511

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N

Python脚本:TXT文档行数统计

count = 0 #计数变量file_dirs = input('请输入您要统计的文件根路径:')filename = open(file_dirs,'r') #以只读方式打开文件file_contents = filename.read() #读取文档内容到file_contentsfor file_content in file_contents:

bcolz文档

原文:http://bcolz.blosc.org/en/latest/reference.html First level variables bcolz.__version__'''bcolz包的版本。''' bcolz.dask_here'''是否检测到dask的最低版本。''' bcolz.min_dask_version'''需要dask的最低版本(dask是可选

WordPress开发中常用的工具或api文档

http://php.net/ http://httpd.apache.org/ https://wordpress.org/ https://cn.wordpress.org/ https://core.svn.wordpress.org/ zh-cn:开发者文档: https://codex.wordpress.org/zh-cn:%E5%BC%80%E5%8F%91%E8%80%

Python知识点:使用Python进行PDF文档处理

使用 Python 进行 PDF 文档处理可以通过多种库来实现,包括 PyPDF2、pdfplumber、reportlab、pdfminer 等。这些库可以处理不同的 PDF 任务,例如 提取文本、拆分合并 PDF、修改 PDF、生成 PDF 等。以下是几种常见操作及对应的库和代码示例。 1. 安装常用库 首先,安装常用的 PDF 处理库: pip install PyPDF2 pdfpl

【2025】基于Python的空气质量综合分析系统的设计与实现(源码+文档+调试+答疑)

博主介绍:     ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。 技术范围:     我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT

提问的智慧(转载)

此文让我受益良多。值得一读,大家如果也觉得不错就一起来推~~~   ---------------------------------      在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。       首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们