OpenCV移植到OMAP3730平台全过程
来源:互联网 发布:mac pscs6破解安装教程 编辑:程序博客网 时间:2024/06/15 09:41
1、移植环境说明
宿主机PC,os为ubuntu10.04 ,目标开发板为TI公司的OMAP3730(kernel 2.6.32),我想大致其他ARM架构也一样。
2、移植OpenCV所需的资源包汇总
/root/need_to_cross_compile_version2/---->jpegsrc.v6b.tar.gz (jpeg函数库)---->libpng-1.2.18.tar.gz (png函数库库)---->zlib-1.2.3.tar.gz (z函数库)---->x264-snapshot-20100410-2245.tar.bz2 (x264函数库)---->yasm-0.7.2.tar.gz (汇编编译器,编译x264时需要用到)---->xvidcore-1.3.2.tar.gz (xvid函数库)---->ffmpeg-0.5.3.tar.bz2 (ffmpeg源码包)---->OpenCV-2.0.0.tar.bz2 (OpenCV源码包) /opt/arm-linux-gcc/---->arm-linux-gcc-4.3.2.tgz (交叉编译工具链)说明:(1)以上资源包中ffmpeg是为了OpenCV能够处理视频,而ffmpeg依赖于x264和xvid两个库,而交叉编译libx264时需要用到汇编编译器yasm。
3、安装交叉编译器
#tar -zvxf arm-linux-gcc-4.3.2.tgz -C /root/
添加环境变量
#vim /etc/environment
在路径中添加/root/arm/4.3.2/bin与已有路径用冒号隔开:
刷新环境变量:
#source /etc/enviroment
4、交叉编译libz
#tar -zvxf zlib-1.2.3.tar.gz#cd zlib-1.2.3#CC=arm-linux-gcc ./configure --prefix=/root/arm/4.3.2/arm-none-linux-gnueabi --shared#make#make install
5、交叉编译libjpeg
#tar –zvxf jpegsrc.v6b.tar.gz #cd jpeg-6b#./configure --prefix=/root/arm/4.3.2/arm-none-linux-gnueabi --enable-shared --enable-static
修改生成的Makefile文件:
CC=gcc改为CC=arm-linux-gcc
AR=ar rc改为AR=arm-linux-ar rc
AR2=ranlib改为AR2=arm-linux-ranlib
#make
需在/root/arm/4.3.2/arm-none-linux-gnueabi目录下创建/man/man1目录,才能执行安装命令。
#cd /root/arm/4.3.2/arm-none-linux-gnueabi#mkdir man#mkdir man/man1#cd /root/need_to_cross_compile_version2/libjpeg-6b#makeinstall
6、交叉编译libpng
#tar –zvxflibpng-1.2.18.tar.gz#cdlibpng-1.2.18#./configure--prefix=/root/arm/4.3.2/arm-none-linux-gnueabi--enable-shared --enable-static --host=arm-linux#make#make install
7、交叉编译yasm
#tar –zvxfyasm-0.7.2.tar.gz#cd yasm-0.7.2#./configure--prefix=/root/arm/4.3.2/arm-none-linux-gnueabi--enable-shared --enable-static --host=arm-linux#make#make install
8、交叉编译libx264
#tar –jvxfx264-snapshot-20100410-2245.tar.bz2#cd x264-snapshot-20100410-2245#CC=arm-linux-gcc ./configure --enable-shared --host=arm-linux --disable-asm --prefix=/root/arm/4.3.2/arm-none-linux-gnueabi#make#make install
9、交叉编译libxvid
#tar –zvxfxvidcore-1.3.2.tar.gz#cd xvidcore-1.3.2#./configure--host=arm-linux --disable-assembly --prefix=/root/arm/4.3.2/arm-none-linux-gnueabi#make#make install
10、交叉编译ffmpeg
#tar –jxvf ffmpeg-0.5.3.tar.bz2#cd ffmpeg-0.5.3#./configure--prefix=/root/arm/4.3.2/arm-none-linux-gnueabi--enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm--disable-stripping --target-os=linux --disable-ffserver --enable-libx264--enable-libxvid --cc=arm-linux-gcc --enable-swscale
此处将会检测libx264 libxvid安装是否正确,以及版本是否是ffmpeg支持的,配置无误则编译:
#make#make install
11、交叉编译OpenCV
#tar –jxvfOpenCV-2.0.0.tar.bz2#cd OpenCV-2.0.0#vim configure定位到大概18182行的位置,在“FFMPEGLIBS="-lavcodec -lavformat” 后添加 “-lswscale”, 修改之后变为:“FFMPEGLIBS="-lavcodec -lavformat-lswscale $FFMPEG_SWSCALE_LIBS"”,然后保存退出。
若不修改此信息,OpenCV将不支持libswscale,即无法进行图像格式转换。
# ./configure --host=arm-none-linux-gnueabi--without-gtk --without-carbon --without-quicktime --without-1394libs--with-ffmpeg --without-python --without-swig --enable-static --enable-shared--disable-apps CXX=arm-linux-g++ CPPFLAGS=-I/root/arm/4.3.2/arm-none-linux-gnueabi/include/LDFLAGS=-L/root/arm/4.3.2/arm-none-linux-gnueabi/lib--with-v4l --prefix=/root/arm/4.3.2/arm-none-linux-gnueabi CXXFLAGS=-O2
若之前的步骤无误,我们将会看到配置信息如下:
Generalconfiguration ================================================ CXX: arm-linux-g++ CXXCPP: arm-linux-g++ -E CPPFLAGS: -I/root/arm/4.3.2/arm-none-linux-gnueabi/include/ CXXFLAGS: -O2 LDFLAGS: -L/root/arm/4.3.2/arm-none-linux-gnueabi/lib Install path: /root/arm/4.3.2/arm-none-linux-gnueabi Debug flags Optimization flags -DNDEBUG -O2-fomit-frame-pointer MMX/SSE/SSE2/SSE3: OpenMP support: External BLAS & LAPACK: no HighGUI configuration ================================================ Windowing system -------------- Use Carbon / Mac OS X: no Use gtk+ 2.x: no Use gthread: no Image I/O --------------------- Use ImageIO / Mac OS X: no Use libjpeg: yes Use zlib: yes Use libpng: yes Use libtiff: no Use libjasper: no Use libIlmImf/OpenEXR: no Video I/O --------------------- Use QuickTime / Mac OS X: no Use xine: no Use gstreamer: no Use ffmpeg: yes Use dc1394 & raw1394: no Use dc1394_v2 & raw1394: no Use v4l: yes Use v4l2: yes Use unicap: no Wrappers for other languages ========================================= SWIG Python no Octave no Additional build settings ============================================ Build demo apps no Now run make ... ======================================================================
确认以上库都支持,则进行编译,安装:
#make#make install
12、将交叉编译好的库文件拷贝到开发板
通过NFS服务器将/root/arm/4.3.2/arm-none-linux-gnueabi/lib目录下生成的所有库文件拷贝到开发板的/lib目录下,若拷贝至其他目录则需指定LD-LIBRARY-PATH,/lib目录则可避免此问题。具体操作如下:
#cp /root/arm/4.3.2/arm-none-linux-gnueabi/lib/lib*/root/worknfs/arm-opencv-2.0
Windows下ZOC超级终端以root用户登录,执行如下操作:
#ifconfig eth0 10.10.204.211#mkdir /mnt/nfs#mount –tnfs –o nolock 10.10.204.210:/root/worknfs /mnt/nfs#cp /mnt/nfs/arm-opencv-2.0/lib* /lib
至此OpenCV2.0及其依赖库已成功移植到Omap3730开发板。
13、编写测试程序arm_save_camera.c,验证移植是否成功,交叉编译:
# arm-none-linux-gnueabi-gcc -o arm_save_camera arm_save_camera.c -I /root/arm/4.3.2/arm-none-linux-gnueabi/include/opencv-L /root/arm/4.3.2/arm-none-linux-gnueabi/lib -lcv -lhighgui -lcvaux -lrt-lpthread -lm -lml -lz -ldl -ljpeg -lpng -lcxcore
将交叉编译好的程序拷贝到开发板上运行,便可通过摄像头拍摄并保存视频sister.avi,将视频文件拷贝的宿主机可以播放,说明OpenCV移植以及完成。
如若转载请注明出处:http://blog.csdn.net/embedded_sky/article/details/20475837
作者:super_bert@csdn
- OpenCV移植到OMAP3730平台全过程
- OpenCV移植到ARM全过程
- OpenCV移植到ARM 全过程
- OpenCV移植到ARM 全过程
- OpenCV移植到ARM 全过程
- 移植OpenCV到ARM平台
- OpenCV ffmpeg移植到ARM平台
- MiniGUI3移植到Hi3515全过程
- MiniGUI3移植到Hi3515全过程
- 在Fedora22平台下将opencv移植到S3C6410
- 将交叉编译好的OpenCV移植到ARM平台
- OpenCV移植到ARM平台---Opencv with ffmpeg to ARM移植总结
- Opencv移植到安卓平台
- OpenCV移植到ARM
- OpenCV移植到ARM9
- opencv移植到Hiveboard
- OpenCV移植到ARM9
- opencv移植到tq2440
- C++基础2
- IOS开发:NSDateFormatter的问题
- yaffs2与mtd之间的连接
- tftp相关操作命令
- servlet 创建/生命周期-单例模式/session唯一/会话超时
- OpenCV移植到OMAP3730平台全过程
- 网页设计常用色彩搭配表
- 根据二叉树的前中序确定唯一的二叉树
- PureFTPd+Mysql+PHP_Manager实现虚拟用户磁盘限额
- sdut2767 翻转排序
- String的格式化处理
- 黑马程序员----IO(一)
- Joy Catalog
- 使用托管C++粘合C#和C++代码(一)