由于最近需要使用二维码定位和识别,经过各种方案的评估发现,使用opencv+zbar的方案,定位、识别和读取信息最快。我们使用的硬件平台为hi3559,所以需要在该平台移植这两个库。
-
opencv移植
1、下载源代码
我们可以从https://github.com/opencv/opencv该链接下载opencv源码。
我下载了两个版本:3.0.0和3.4,编译的时候老是报一些莫名其妙的错误,最后我下载的3.2.0,编译通过。
2、搭建编译环境
- 安装cmake
- 创建opencv3.0目录,然后在该目录下分别创建build和install两个目录。
3、代码编译
1)首先需要配置
2、编译
make;
make install
注意:
编译应用程序时连接环境要搭建争取,我上传一个我的Makefile作为参考:
TARGET1 = test
TARGET2 = test
COMPILE_TOOL_PATH = /home/opencv3.0/install
CXX = aarch64-himix100-linux-g++
CFLAGS += -Wl,-rpath-link,$(COMPILE_TOOL_PATH)/lib \
-I$(COMPILE_TOOL_PATH)/include \
-L$(COMPILE_TOOL_PATH)/lib \
-L$(COMPILE_TOOL_PATH)/lib -Wall -W \
-std=c++11
CFLAGS += -lopencv_core -lopencv_objdetect -lopencv_highgui -lopencv_videoio -lopencv_imgproc -lopencv_imgcodecs -lpthread -lrt -ldl
all:
@$(CXX) $(TARGET1).cpp -o $(TARGET2) $(CFLAGS)
clean:
rm -rf $(TARGET1)
-
zbar移植
1、下载源码
https://sourceforge.net/projects/zbar/files/zbar/0.10/
版本号:0.10
2、配置
./configure --host=arm-himix100-linux --prefix=/home/zbar/install --disable-video --without-gtk --without-qt --without-imagemagick --without-python
3、编译
make;
make install
报错信息:
在编译过程中出现一些报错信息:
1、/usr/include/x86_64-linux-gnu/bits/stdio2.h:139:1: error: expected identifier or ‘(’ before ‘{’ token
该报错信息的解决办法:
export CFLAGS=""
执行完这句再重新config。
2、../libtool: eval: line 950: syntax error near unexpected token `|’
该报错信息的解决办法:
export NM=nm