技术专栏
【海思开源篇】-(1)opencv3.3移植
【海思之开源】-opencv3.3移植
1.前言
现在海思芯片在安防领域的应用越来越智能化,比如现在行车记录仪都添加了ADAS、BSD、DSM和360全景。而目前开源算法处理图像问题都用到opencv,非常广泛。在hi3531dv200做算法时候需要移植opencv,现在把移植的方法总结一下。
2.源码下载
opencv源码编译需要开源软件libpng,zlib支持。所以在这里把zlib和libpng移植也一并总结一下。
海思编译器:aarch64-himix200-linux
2.1 opencv源码
本文使用opencv3.3,开源在github上自行下载。
https://github.com/opencv/opencv/releases
第一步:新建一个脚本文件build_opencv_hi3531dv200.sh,注意脚本最后必须带上“..”,另外zlib可以暂时关闭,可能编译不过,这个可以单独编译。
另外如果需要编译静态库BUILD_SHARED_LIBS=OFF即可
内如如下:
#!/bin/sh
#aarch64-himix200-linux- arm-himix400-linux
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_C_COMPILER=aarch64-himix200-linux-gcc \
-D CMAKE_CXX_COMPILER=aarch64-himix200-linux-g++ \
-D BUILD_SHARED_LIBS=ON \
-D CMAKE_CXX_FLAGS=-fPIC \
-D CMAKE_C_FLAGS=-fPIC \
-D CMAKE_EXE_LINKER_FLAGS=-lpthread -ldl \
-D ENABLE_PIC=ON \
-D WITH_1394=OFF \
-D WITH_ARAVIS=OFF \
-D WITH_ARITH_DEC=ON \
-D WITH_ARITH_ENC=ON \
-D WITH_CLP=OFF \
-D WITH_CUBLAS=OFF \
-D WITH_CUDA=OFF \
-D WITH_CUFFT=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D WITH_HALIDE=OFF \
-D WITH_HPX=OFF \
-D WITH_IMGCODEC_HDR=ON \
-D WITH_IMGCODEC_PXM=ON \
-D WITH_IMGCODEC_SUNRASTER=ON \
-D WITH_INF_ENGINE=OFF \
-D WITH_IPP=OFF \
-D WITH_ITT=OFF \
-D WITH_JASPER=ON \
-D WITH_JPEG=ON \
-D WITH_LAPACK=ON \
-D WITH_LIBREALSENSE=OFF \
-D WITH_NVCUVID=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENCLAMDBLAS=OFF \
-D WITH_OPENCLAMDFFT=OFF \
-D WITH_OPENCL_SVM=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENMP=OFF \
-D WITH_OPENNNI=OFF \
-D WITH_OPENNNI2=OFF \
-D WITH_OPENVX=OFF \
-D WITH_PNG=ON \
-D WITH_PROTOBUF=OFF \
-D WITH_PTHREADS_PF=ON \
-D WITH_PVAPI=OFF \
-D WITH_QT=OFF \
-D WITH_QUIRC=OFF \
-D WITH_TBB=OFF \
-D WITH_TIFF=ON \
-D WITH_VULKAN=OFF \
-D WITH_WEBP=ON \
-D WITH_XIMEA=OFF \
-D BUILD_ZLIB=OFF \
-D ZLIB_INCLUDE_DIR=\
-D ZLIB_LIBRARY_RELEASE= \
-D CMAKE_INSTALL_PREFIX=../output_31d\
-D WITH_GTK=OFF\
..
第二步:
在根目录下新建buid_31d和output_31d文件夹,拷贝build_opencv_hi3531dv200.sh到buid_31d
第三步:编译
- cd buid_31d;./build_opencv_hi3531dv200.sh
- make -j8;make install;
完成编译后会在output_31d生成如下文件夹
总用量 4
drwxrwxr-x. 2 xxx 174 8月 29 10:08 bin
drwxrwxr-x. 4 xxx 35 8月 20 15:55 include
drwxrwxr-x. 3 xxx 4096 8月 29 10:08 lib
drwxrwxr-x. 3 xxx 20 8月 20 15:55 share
2.2 zlib移植
2.2.1 源码下载
2.2.2 编译
由于configure不支持cc,在网上看到好多解决方法,目前比较好用如下:
export CC=aarch64-himix200-linux-gcc
./configure --prefix=$PWD/_install
Checking for shared library support...
Building shared library libz.so.1.2.11 with aarch64-himix200-linux-gcc.
Checking for size_t... Yes.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.
make;make install
总用量 280
-rw-r--r--. 1 xxx 152594 8月 29 14:15 libz.a
lrwxrwxrwx. 1 xxx 14 8月 29 14:15 libz.so -> libz.so.1.2.11
lrwxrwxrwx. 1 xxx 14 8月 29 14:15 libz.so.1 -> libz.so.1.2.11
-rwxr-xr-x. 1 xxx 127216 8月 29 14:15 libz.so.1.2.11
drwxrwxr-x. 2 xxx 21 8月 29 14:15 pkgconfig
2.3 libpng编译
2.3.1 源码下载
下载libpng源码libpng-1.2.56版本
2.3.2 编译
./configure CC=aarch64-himix200-linux-gcc --host=aarch64-himix200-linux --prefix=$PWD/_install
报错:zlib not installed
checking for an ANSI C-conforming const... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for working strtod... no
checking for pow... no
checking for pow in -lm... yes
checking for memset... yes
checking for pow... (cached) no
checking for pow in -lm... (cached) yes
checking for zlibVersion in -lz... no
configure: error: zlib not installed
所以需要上面我们编译的lib和include
export LDFLAGS="-L/tools/zlib-1.2.11/_install/lib"
export CPPFLAGS="-I/tools/zlib-1.2.11/_install/include"
再次配置check通过。
make -j8;make install
总用量 2408
-rw-r--r--. 1 xxx 1174618 8月 29 14:26 libpng12.a
-rwxr-xr-x. 1 xxx 1089 8月 29 14:26 libpng12.la
lrwxrwxrwx. 1 xxx 18 8月 29 14:26 libpng12.so -> libpng12.so.0.56.0
lrwxrwxrwx. 1 xxx 18 8月 29 14:26 libpng12.so.0 -> libpng12.so.0.56.0
-rwxr-xr-x. 1 xxx 632944 8月 29 14:26 libpng12.so.0.56.0
lrwxrwxrwx. 1 xxx 10 8月 29 14:26 libpng.a -> libpng12.a
lrwxrwxrwx. 1 xxx 11 8月 29 14:26 libpng.la -> libpng12.la
lrwxrwxrwx. 1 xxx 11 8月 29 14:26 libpng.so -> libpng12.so
lrwxrwxrwx. 1 xxx 16 8月 29 14:26 libpng.so.3 -> libpng.so.3.56.0
-rwxr-xr-x. 1 xxx 650176 8月 29 14:26 libpng.so.3.56.0
drwxrwxr-x. 2 xxx 42 8月 29 14:26 pkgconfig
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
4
6
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:2366次2020-08-30 12:39:35
-
浏览量:2147次2020-08-29 21:27:46
-
浏览量:3385次2020-08-30 10:14:12
-
浏览量:4667次2020-08-30 08:25:06
-
浏览量:3338次2020-08-30 15:44:39
-
浏览量:582次2024-01-24 14:47:22
-
浏览量:3490次2020-08-30 10:04:00
-
浏览量:1029次2024-01-03 17:15:03
-
浏览量:843次2024-01-08 18:13:05
-
浏览量:1816次2021-01-27 16:48:37
-
浏览量:4732次2020-08-30 09:01:15
-
浏览量:9907次2020-08-30 15:32:16
-
浏览量:2153次2020-04-21 20:27:00
-
浏览量:3387次2020-04-21 20:28:40
-
浏览量:2358次2020-08-30 11:33:11
-
浏览量:2547次2020-08-30 11:31:00
-
浏览量:3551次2020-08-30 15:59:35
-
浏览量:960次2023-09-01 13:29:58
-
浏览量:591次2024-02-23 17:34:00
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
xclshwd
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注