> 文档中心 > opencv 全志_移植opencv人脸识别到全志A10开发板上 +linux3.0内核

opencv 全志_移植opencv人脸识别到全志A10开发板上 +linux3.0内核

移植opencv人脸识别

libz:    zlib-1.2.3

libjpeg:   jpegsrc.v6b

libpng:   libpng-1.2.18

libyasm:   yasm-0.7.2

opencv:    opencv-2.0.0

libx264:   x264-snapshot-20050911-2245

libxvid:   xvidcore-1.1.3

lffmpeg:   ffmpeg-0.4.9-p20051120

1, 设置环境变量:

代码: 全选

export PATH=$PATH:/usr/local/arm/4.3.2/bin

说明:/usr/local/arm/4.3.2/bin是我的交叉编译工具所在目录

下面所有编译的库都放在目录:/usr/local/arm/4.3.2/arm-none-linux-gnueabi下。这么做的原因是避免在编译其他库时,需要重新指定依赖库的路径,经验告诉我,这样做同时能够消除,依赖库路径所带来的麻烦。

2, libz的交叉编译:

进入libz的目录:

CC=arm-linux-gcc ./configure --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi --shared

#make

#make install

3, libjpeg的交叉编译:

进入jpeg的目录:

#./configure --prefix=/usr/arm-2010.09/bin/arm-none-linux-gnueabi --enable-shared –enable-static

#gedit Makefile (修改Makefile中cc =arm-linux-gcc ar=arm-linux-ar ar2=arm-linux-ranlib)

#make

make之后会出现这样的错误:”

./libtool --mode=compile arm-linux-gcc -O2  -I. -c ./jcapimin.c

make: ./libtool: Command not found

make: * [jcapimin.lo] Error 127

解决办法: 检查自己系统下有没有libtool,如果没有那么自己装一个;装完之后把config.guess &&config.sub复制到jpeg目录下:

#cp /usr/share/libtool/config/config.sub ./

#cp /usr/share/libtool/config/config.guess ./

之后执行:

#make install

make install 时又出现错误:

/usr/bin/install: cannot create regular file `/usr/local/libjpeg/bin/cjpeg': No such file or directory

make: * [install] Error 1

解决办法:在/usr/local/arm/4.3.2/bin下建立4个目录:

#mkdir bin

#mkdir lib

#mkdir include

#mkdir man/man1

然后,

#make install

4, libpng的交叉编译

进入png的目录:

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

#make

#make install

安装libpng出现configure: error: ZLib not installed

然后就按照以下步骤做

0.先安装zlib

1.进入zlib的源文件目录,执行命令 make clean,清除zlib

2.重新配置 ./configure,后面不要接--prefix参数;

3.编辑 make && make install 安装;

4.进入libpng目录,执行命令 ./configure --prefix=/usr/local/libpng;

5.编译 make && make install 安装;

6.安装成功;

5, yasm的交叉编译:

进入yasm目录:

#./configure --prefix=/usr/arm-2010.09/bin/libx264 --enable-shared --enable-static --host=arm-linux

#make

#make install

6, libx264的交叉编译:

进入x264目录:

#CC=arm-none-linux-gnueabi-gcc ./configure --enable-shared --host=arm-linux –disable-asm --prefix=/usr/arm-2010.09/bin/libx264

make CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar LD=arm-none-linux-gnueabi-ld RANLIB=arm-none-linux-gnueabi-ranlib STRIP=arm-none-linux-gnueabi-strip

#make

#make install

7, libxvid的交叉编译:

进入build/generic目录:

#./configure --prefix=/usr/arm-2010.09/bin/libxvid --host=arm-linux  --disable-assembly

#make

#make install

9, opencv2.0.0的交叉编译:

进入opencv2.0.0目录:首先,修改configure文件:

#gedit configure

搜索-lavcodec,定位到大概18182行的位置,在“FFMPEGLIBS="-lavcodec -lavformat” 后添加 “-lswscale”, 修改之后变为:“FFMPEGLIBS="-lavcodec -lavformat -lswscale $FFMPEG_SWSCALE_LIBS"”,然后保存退出。

在终端中输入:

#./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/usr/local/arm/4.3.2/arm-none-linux-gnueabi/include/ LDFLAGS=-L/ usr/local /arm/4.3.2/arm-none-linux-gnueabi/lib --with-v4l --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi  CXXFLAGS=-O2

#make

#make install

到此,opencv-2.0.0的一直算是成功了。接下来,需要把所有的库烧写到arm板子上去,如果烧写到根目录的lib目录下,那么不用指定LD-LIBRARY-PATH,反之则反之。

湖北工具网