海思3559A上编译OpenCV4.1.0源码操作步骤(验证没问题,源码推荐opencv-4.1.0.zip)

本文介绍了如何在海思板子上针对OpenCV 4.1.0进行编译,并修复了因缺失zlib.h和png_init_filter_functions_neon等错误。步骤包括修改CMakeLists.txt和3rdparty/CMakeLists.txt,以及配置脚本build.sh。最终成功执行示例验证了编译的正确性。
摘要由CSDN通过智能技术生成

转载自:https://blog.csdn.net/fengbingchun/article/details/96430706

1. 从https://github.com/opencv/opencv/releases 下载opencv源码opencv-4.1.0.zip并解压缩;

2. 修改最顶层的CMakeLists.txt,在第658行加入一条语句如下,fix error: pngstruct.h:30:18: fatal error: zlib.h: No such file or directory #include "zlib.h":

ocv_include_directories(./3rdparty/zlib)
3. 修改3rdparty/libpng/CMakeLists.txt,在文件前加入以下4行语句,fix error: libopencv_imgcodecs.so.4.1.0: undefined reference to png_init_filter_functions_neon等错误:

IF(HISI3559A)
	SET(ARM 1)
	SET(ENABLE_NEON 1)
ENDIF()

4. 脚本build.sh内容如下:

cmake \
	-DCMAKE_BUILD_TYPE=RELEASE \
	-DCMAKE_C_COMPILER=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc \
	-DCMAKE_CXX_COMPILER=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++ \
	-DBUILD_SHARED_LIBS=ON \
	-DCMAKE_CXX_FLAGS=-fPIC \
	-DCMAKE_C_FLAGS=-fPIC \
	-DCMAKE_EXE_LINKER_FLAGS=-lpthread -lrt -ldl \
	-DENABLE_PIC=ON \
	-DWITH_1394=OFF \
	-DWITH_ARAVIS=OFF \
	-DWITH_ARITH_DEC=ON \
	-DWITH_ARITH_ENC=ON \
	-DWITH_CLP=OFF \
	-DWITH_CUBLAS=OFF \
	-DWITH_CUDA=OFF \
	-DWITH_CUFFT=OFF \
	-DWITH_FFMPEG=ON \
	-DWITH_GSTREAMER=ON \
	-DWITH_GSTREAMER_0_10=OFF \
	-DWITH_HALIDE=OFF \
	-DWITH_HPX=OFF \
	-DWITH_IMGCODEC_HDR=ON \
	-DWITH_IMGCODEC_PXM=ON \
	-DWITH_IMGCODEC_SUNRASTER=ON \
	-DWITH_INF_ENGINE=OFF \
	-DWITH_IPP=OFF \
	-DWITH_ITT=OFF \
	-DWITH_JASPER=ON \
	-DWITH_JPEG=ON \
	-DHISI3559A=1 \
	-DWITH_PNG=ON \
	-DWITH_LAPACK=ON \
	-DWITH_LIBREALSENSE=OFF \
	-DWITH_NVCUVID=OFF \
	-DWITH_OPENCL=OFF \
	-DWITH_OPENCLAMDBLAS=OFF \
	-DWITH_OPENCLAMDFFT=OFF \
	-DWITH_OPENCL_SVM=OFF \
	-DWITH_OPENEXR=OFF \
	-DWITH_OPENGL=OFF \
	-DWITH_OPENMP=OFF \
	-DWITH_OPENNNI=OFF \
	-DWITH_OPENNNI2=OFF \
	-DWITH_OPENVX=OFF \
	-DWITH_PROTOBUF=OFF \
	-DWITH_PTHREADS_PF=ON \
	-DWITH_PVAPI=OFF \
	-DWITH_QT=OFF \
	-DWITH_QUIRC=OFF \
	-DWITH_TBB=OFF \
	-DWITH_TIFF=ON \
	-DWITH_VULKAN=OFF \
	-DWITH_WEBP=ON \
	-DWITH_XIMEA=OFF \
	-DWITH_GTK=OFF \
	-DINSTALL_C_EXAMPLES=ON \
	-DINSTALL_PYTHON_EXAMPLES=OFF \
	-DBUILD_EXAMPLES=ON \
	-DCMAKE_INSTALL_PREFIX=./install \
	..

5. OpenCV根目录下,依次执行如下命令,执行完后会将生成的头文件和动态库存放在build/install目录:

mkdir build
cd build
cp ../build.sh .
./builld.sh
make -j8
make install

6. 将build/bin目录下的example_tutorial_porting_anisotropic_image_segmentation_gapi及动态库拷贝到海思板子上,执行,显示结果一切正常,说明OpenCV编译正常,执行结果如下:

注意:

1. 由于海思板子不支持GTK,所以必须添加-DWITH_GTK=OFF项,所以在海思板子上不支持imshow相关函数;

2. 如想减少编译时间,可不编译examples,将-DINSTALL_C_EXAMPLES和-DBUILD_EXAMPLES由ON调整为OFF。

GitHub:http://github.com//fengbingchun/OpenCV_Test
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值