赞
踩
目录
官网下载,将下载后的文件夹解压到主目录,重命名为opencv,在此文件夹中新建文件夹arm-build,arm-install(用于存放交叉编译后的opencv库)
sudo cmake-gui
点击configure,如下图
点击next, 如下图,C,C++:交叉编译链
点击finish,开始配置,选择Advanced。在search栏中输入flags,并在勾选advanced,然后按下图进行配置。即将CMAKE_CXX_FLAGS和CMAKE_C_FLAGS的值设为-O3 -fPIC -W -Wall,将CAMKE_EXE_LINKER_FLAGS的值设为-lpthread -lrt -ldl。
在search框搜索zlib,在BUILD_ZLIB后打勾,并选择ZLIB_INCLUDE_DIR路径,为你的opencv源码路径中的3rdparty/zlib。
在search框搜索pkg,在OPENCV_GENERATE_PKGCONFIG后打勾,生成opencv.pc文件。
在search框搜索install,将CMAKE_INSTALL_PREFIX后路径换为arm-install路径。
配置完成后再次点击configure,完成后点击generate。
make -j4
sudo make install
4.1
sudo gedit /etc/bash.bashrc
添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/.编译后的opencv库路径./arm-install/lib/pkgconfig export PKG_CONFIG_PATH
重启激活
4.2
sudo gedit /etc/ld.so.conf.d/opencv.conf
添加
/.编译后的opencv库路径./arm-install/lib
sudo ldconfig
pkg-config --cflags --libs opencv4
test.cpp
- #include <opencv2/opencv.hpp>
-
- using namespace cv;
-
- int main( int argc, char** argv )
- {
- Mat image;
-
- image = imread( "test.jpg", 1 );
- if( !image.data )
- {
- printf( "No image data \n" );
- return -1;
- }
-
- cv::Point lu = cv::Point(180, 60);
- cv::Point rd = cv::Point(400, 260);
-
- cv::rectangle(image, lu, rd, cv::Scalar( 255, 20, 0 ), 1, cv::LINE_AA );
-
- imwrite("test.jpg", image);
-
- return 0;
- }
aarch64-linux-gnu-g++ $(pkg-config --cflags --libs opencv4) test.cpp -o test
查看编译后文件, ARM aarch64说明编译成功。
办法:
打开opencv源码目录,编辑/opencv/3rdparty/libpng/pngpriv.h
sudo gedit 3rdparty/libpng/pngpriv.h
将第130注释修改,第131行添加
# if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。