1. 程式人生 > >Linux下安裝opencv並移植至ARM

Linux下安裝opencv並移植至ARM

目的:

OpenCV是Intel支援的開源計算機視覺庫。它由一系列C函式和少量C++類構成,實現了影象處理和計算機視覺方面的很多通用演算法。它不依賴於其它的外部庫—儘管也可以使用某些外部庫。OpenCV使用BSD License,對非商業應用和商業應用都可以免費使用。OpenCV的主要應用環境是Windows和Linux,本文主要介紹於嵌入式系統下的安裝。

開發環境:

Linux版本:fedora24

Opencv版本:opencv-2.1.0 ( 下載地址:http://opencv.org/ )

移植opencv2.4.2編譯arm程式時

arm-linux-g++ -o opencv_test opencv_test.
cpp -I /usr/local/arm/opencv/include/opencv -L /usr/local/arm/opencv/lib -lopencv_core -lopencv_highgui 出現如下錯誤: /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm-none-linux-gnueabi/bin/ld: warning: ../../lib/libcxcore.so, needed by /usr/local/arm/opencv-2.1/lib/libcv.so, not found (try using -rpath or -rpath
-link) /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm-none-linux-gnueabi/bin/ld: warning: ../../lib/libcv.so, needed by /usr/local/arm/opencv-2.1/lib/libcvaux.so, not found (try using -rpath or -rpath-link) /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm-none-linux-gnueabi/bin/ld: warning: ..
/../lib/libhighgui.so, needed by /usr/local/arm/opencv-2.1/lib/libcvaux.so, not found (try using -rpath or -rpath-link) /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm-none-linux-gnueabi/bin/ld: warning: ../../lib/libml.so, needed by /usr/local/arm/opencv-2.1/lib/libcvaux.so, not found (try using -rpath or -rpath-link) 讀了這邊作者的博文:http://blog.csdn.net/yanzi1225627/article/details/7524698,發現他遇到的和我類似的問題,且嘗試了多種方式也沒能解決,最終我也和他一樣走向了放棄Opencv2.4.2的道路,轉向Opencv2.0。其中也嘗試了他提供的解決方法,並參考博文:http://blog.sina.com.cn/s/blog_602f87700100nyda.html 在交叉編譯中LFLAGS即-L換成-Wl,-rpath-link -Wl,發現這個問題是不見了,但是盡然出現了找不到.so的庫檔案,我也無語了,這在之前已經解決的問題又回來了,拷貝了庫也設定了路徑,老問題又出現了,被打回十年前的感覺很痛苦。arm-none-linux-gnueabi缺少這樣的庫,拷貝過去就行了,發現不行,且這篇文庫尼瑪是複製的之前好幾個博主的文章,原文不動,都不知道有沒有試過。沒辦法只能放棄Opencv2.4.2了。

交叉編譯工具:arm-linux-gcc-4.3.2

安裝與配置:

1.安裝CMake:
下載地址:https://cmake.org/download/
./bootstrap
make
make install
2.編譯OpenCV:
A.解壓檔案
B.建立/usr/local/opencv-arm/目錄,作為CMake編譯arm版本的工作目錄
C.在X環境下,執行cmake-gui:
這裡寫圖片描述

a.選擇原始碼目錄:/usr/local/OpenCV-2.1.0
b.選擇Build目錄:/usr/local/opencv-arm/
c. 點選Configure,保持generator為Unix Makefiles,選擇Specify options for cross-compiling,點選Next
d. Operating System填寫arm-inux
e. C Compilers填寫/usr/local/arm/4.3.2/bin/arm-linux-gcc
f. C++ Compilers填寫/usr/local/arm/4.3.2/bin/arm-linux-g++
g.程式庫的Target Root填寫/usr/local/arm/4.3.2/
h.點選Finish
i.修改預設配置,預設安裝目錄為/usr/local,對於交叉編譯的庫來說並不合適,所以我把CMAKE_INSTALL_PREFIX變數改為/usr/local/arm/lib/opencv/
j.點選Generate生成Makefile

D.在終端介面中,進入目錄/usr/local/opencv-arm,執行make編譯opencv

編譯時發現如下錯誤:
Linking CXX executable ../../bin/opencv_createsamples
../../lib/libcxcore.so: undefined reference to clock_gettime'
../../lib/libcxcore.so: undefined reference to
pthread_key_create’
../../lib/libcxcore.so: undefined reference to pthread_getspecific'
../../lib/libcxcore.so: undefined reference to
pthread_setspecific’

../../lib/libopencv_ocl.so:undefined reference to ‘dlopen’

原因是cmake不認識我定義的arm-linux系統標記,沒有加上庫pthread和rt的連結選項

E.修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原來為空,加上-lpthread -lrt -ldl,重新編譯,錯誤消除
F.執行make install,將opencv生成的庫和標頭檔案安裝到目錄/usr/local/arm/lib/opencv/

測試OpenCV庫:

相關推薦

Linux安裝opencv移植ARM

目的: OpenCV是Intel支援的開源計算機視覺庫。它由一系列C函式和少量C++類構成,實現了影象處理和計算機視覺方面的很多通用演算法。它不依賴於其它的外部庫—儘管也可以使用某些外部庫。OpenCV使用BSD License,對非商業應用和商業應用都可以免

linux安裝opencv生成opencv-java,即linux用java呼叫opencv

版本是opencv2.4.5 1、安裝依賴包,採用yum命令安裝,在終端機輸入以下指令 yum install cmake gcc gcc-c++ gtk+-devel gimp-devel gimp-devel-tools gimp-help-browser zlib

linux安裝redis配置

ext find 客戶 bin extract write sometimes group gin redis官網上給出了安裝步驟,這裏做一下總結。 1、Download, extract and compile Redis with: wget http://downl

Linux安裝Nginx配置一個圖片服務器

com log 僅支持 centos6 str 技術分享 .html agent remote 首先安裝nginx安裝環境 nginx是C語言開發,建議在linux上運行,本教程使用Centos6.5作為安裝環境。 --> gcc 安裝nginx需要先將官網下載的

linux安裝eclipse使用xstart遠程使用(centos7)

服務器 ftp 啟動文件 www. package linux down 使用 bsp 1 eclipse安裝   1)到官網下載eclipse的linux版     http://www.eclipse.org/downloads/packages/eclipse-i

如何在linux安裝jdk運行java程序

tps 是否可用 tom pin ans centos blog sun 就是 一、進入root 大家可以看到我這裏用的是CentOS 6.5 系統 二、測試網絡與YUM是否可用 1.測試網絡 ping www.baidu.com,如下圖就是通了

Linux安裝PHP在nginx服務器中進行配置的詳細方法

devel direct emca red pca pic 占用 amp entos 先介紹一下使用的環境:centos 7.4,  PHP 7.0 ,  nginx 1.12 Linux系統版本可以通過命令:lsb_release -a 查看. 現在開始步入正題了! 1.

Linux安裝 activemq 指定jdk 1.8

配置信息 調用 webapps mes ets cto java accep stat 1. 下載安裝包 <apache-activemq-5.15.4-bin.tar.gz> 下載地址:https://pan.baidu.com/s/18xzjBAchjWqs

linux安裝mysql修改密碼 [轉]

刪除已有mysql並重新安裝mysql 檢視是否已安裝過mysql rpm -qa |grep -i mysql     2.移除安裝的包 (在之前如果有啟動mysql最好關掉服務) 使用rpm –ev 包名   3.

Linux安裝MongoDB建立使用者

1.下載tar包 https://www.mongodb.com/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.3.tgz/download?from=dcv2 2.上傳,解壓,移動 把下載的ta

Linux安裝Redis實現遠端連線,Redis Desktop Manager視覺化連線

1.下載redis redis不是安裝包,例如tomcat,mysql等都是安裝包直接解壓就可以使用,redis是原始檔,需要用編譯後才可以使用。 2.使用xftp把壓縮包拖入到root/redis/資料夾下,並解壓 tar -zxvf redis-5.0.0.

linux安裝nginx針對其錯誤解決方案

1.進入src目錄(下載存放目錄) cd /usr/local/src/ 2.wget下載:http://nginx.org/en/download.html(nginx官網) wget http://nginx.org/download/nginx-1.10.3.tar

linux安裝mongodb以許可權方式啟動

show dbs:顯示資料庫列表  show collections:顯示當前資料庫中的集合(類似關係資料庫中的表)  show users:顯示使用者 use <db name>:切換當前資料庫,這和MS-SQL裡面的意思一樣  db.help():顯示資料庫操作命令,裡面有很多的命令  db.

Linux安裝Apache以mod_wsgi方式部署django站點

l 安裝arp tar -zxf apr-1.5.0.tar.gz #解壓壓縮包 壓縮包名稱根據版本號決定   cd apr-1.5.0 #進入解壓目錄   ./configure --prefix=/usr/local/apr #進行安裝配置 設定安裝位置 

CentOS系統Linux安裝Tomcat配置

一、目標: 在CentOS6.9 64位上安裝Tomcat並配置在/var/opt/Linux目錄下 二、安裝步驟: 1.上傳apache-tomcat-8.5.23.tar.gz並解壓縮到/var/opt/Linux目錄(該目錄可自行選擇) apache-tomcat-8.5.23.t

CentOS系統Linux安裝jdk配置環境變數

一、目標: 在CentOS6.9 64位上安裝jdk1.8(tar.gz安裝包),並配置環境變數 jdk安裝在/var/opt/Linux目錄下 二、.安裝步驟: 1.上傳jdk-8u65-linux-x64.tar.gz並解壓縮到/var/opt/Linux目錄(該目錄可自行選擇)下

Redis 一:Linux 安裝Redis配置服務

一、簡介 1、 Redis為單程序單執行緒模式,採用佇列模式將併發訪問變成序列訪問。        2、 Redis不僅僅支援簡單的k/v型別的資料,同時還提供list,set,zset,hash等資

linux安裝sublime配置執行python

1.官網下載安裝包:http://www.sublimetext.com/2 2.解壓並不難,隨便找個目錄解壓就行,但考慮到後面要能在命令列下方便的快速啟動,推薦解壓到/usr/lib/目錄下,我用的方法是先解壓後搬移,命令如下: tar -xvf Sublime\

linux安裝redis整合到spring容器

第一步 安裝並配置redis 1.去官網地址下載最新版本的壓縮包,目前最新的是4.0.1 2.進入壓縮包所在的目錄,輸入命令解壓 tar zxvf redis-4.0.1.tar.gz 3.進入解壓後的目錄,輸入make命令進行編譯

linux安裝mysql配置開機啟動等

一.安裝 1.檢視mysql是否安裝過 [[email protected]: ~]#rpm -qa|grep mysql 2.刪除mysql 加入有安裝過你想刪除則可以這麼刪除