OpenCV是一個基于BSD許可(開源)發行的計算機視覺庫,廣泛應用于跨平臺環境,包括Linux、Windows、Android及Mac OS操作系統。作為計算機視覺領域廣受歡迎的標準工具包,OpenCV擁有了豐富的常用圖像處理函數庫,采用C/C++語言編寫,可以運行在Linux、Windows、Mac等操作系統上流暢運行,并能夠快速實現一系列圖像處理和識別任務。
此外OpenCV為了增強其通用性和易用性,還提供了Java、Python、CUDA等的使用接口、機器學習的基礎算法調用,在圖像處理與分析方面極大地簡化了開發流程,使開發者能更專注于核心算法的設計和應用層面的工作。
接下來,以ELF 1開發板為例,本文將詳細介紹如何成功移植OpenCV。
01下載OpenCV源碼
下載地址:https://opencv.org/releases/選擇你需要的版本,點擊Source,小編這里以OpenCV- 3.4.1版本為例進行移植。
02將源碼拷貝到Ubuntu環境中并進行解壓
elf@ubuntu:~/work/a/wenz$ tar xvf opencv-3.4.1.tar.gz elf@ubuntu:~/work/a/wenz$ ls opencv-3.4.1 opencv-3.4.1.tar.gz
03進入OpenCV目錄,創建文件夾build和install
elf@ubuntu:~/work/a/wenz$ cd opencv-3.4.1/ elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ mkdir build elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ mkdir install
04CMake-gui配置
首先打開CMake-gui,我們會用到CMake-gui對OpenCV進行配置,若沒有請使用以下命令進行安裝。
elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ sudo apt-get install cmake cmake-qt-gui cmake-curses-gui elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ cmake-gui
參考下圖進行配置:


C :/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc C++ :/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ Target Root:/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/lib

點擊finish后,參考下圖進行配置

CMAKE_CXX_FLAGS: -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi CMAKE_INSTALL_PREFIX: /home/elf/work/a/wenz/opencv-3.4.1/install CMAKE_EXE_LINKER_FLAGS: -lpthread -lrt -ldl
點擊Configure 和Generate,參考下圖進行配置

配置成功之后,點擊Configure 和Generate。此時已經正常生成Makefile。

正常生成makefile之后,使用make進行編譯
elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ cd build elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ make
報錯一:

elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ vi ../3rdparty/protobuf/src/google/protobuf/stubs/common.cc
加上這一行 #define HAVE_PTHREAD
保存、退出

報錯二

elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ vi ../3rdparty/libpng/pngpriv.h
將:
# if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \
改為:
# if defined(PNG_ARM_NEON) && (defined(ARM_NEON) || defined(__ARM_NEON)) && \

之后編譯就沒有報錯了,編譯完成后,執行make install將庫和例程安裝到目標文件下。
elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ make install
將生成的文件通過U盤拷貝到開發板,至此OpenCV移植就結束啦,希望能對屏幕前的小伙伴提供幫助。
-
嵌入式
+關注
關注
5121文章
19416瀏覽量
312584 -
計算機
+關注
關注
19文章
7598瀏覽量
89706 -
開發板
+關注
關注
25文章
5371瀏覽量
100542 -
OpenCV
+關注
關注
31文章
641瀏覽量
42195
發布評論請先 登錄
相關推薦
ELF 1技術貼|如何在Ubuntu中編譯OpenCV庫

嵌入式學習-飛凌ElfBoard ELF 1板卡 - 如何在Ubuntu中編譯OpenCV庫
I.MX6ULL-飛凌 ElfBoard ELF1板卡 - 如何在Ubuntu中編譯OpenCV庫(X86架構)
OpenCV的移植方法
OpenCV學習之路--5--OpenCV3.4.10的ARM版本移植到開發板 精選資料分享
ARM Linux下OpenCV的移植和使用方法
移植OpenCV-4.3.0的過程
opencv-4.3.0嵌入式Linux移植

RK3568上OpenCV 的編譯移植

RK3568上OpenCV 的編譯移植
ELF 1技術貼|LCD作為終端控制臺的方法

ELF 1技術貼|在NXP源碼基礎上適配ELF 1開發板的LED功能

ELF 1技術貼|如何移植Boa 到開發板上

ELF 1技術貼|如何將Python3.6.9移植到開發板上

ElfBoard技術貼|如何在ELF 1開發板上交叉移植Qt

評論