1. 程式人生 > >關於在RK3288上安裝Opencv的方法

關於在RK3288上安裝Opencv的方法

pda zip 依賴項 all fig 準備 for 固件 namespace

Opencv是一個開源的計算機視覺庫,可以給開發人員提供更便捷的方式設計復雜的視覺應用,Opencv主要是用c和c++編寫,可以運行在Windows/Linux/Mac等上。這幾天嘗試著在RK3288上安裝Opencv,被虐了好多遍,幸好沒有放棄,終於弄出了。之前一直是通過電腦先交叉編譯Opencv再移植的方法,但是在編譯過程中總是遇到各種問題,換了不同的Opencv源又會出現新的問題,所以如果有交叉編譯移植成功的朋友不妨交流一下。這裏采用了一種比較折中的方法,直接在開發板上配置好環境,然後安裝編譯Opencv。

一、前期準備

開發板燒寫的固件是官方網站下載的,Ubuntu的系統。

將開發板與電腦通過串口連接起來,方便命令控制。

在Opencv官方網站下載一個在linux下的Opencv源,我的是opencv-2.4.10.zip,放到開發板的/home下,http://opencv.org/downloads.html

二、環境配置

1、更新軟件源

apt-get update

apt-get upgrade

2、下載依賴項

apt-get install gcc g++

apt-get install cmake

apt-get install build-essential

apt-get install libgtk2.0-dev

apt-get install pkg-config

apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev

apt-get install python-dev python-numpy

3、解壓縮

去到opencv源碼所在文件夾下,(我的在/home目錄下),解壓縮

unzip opencv-2.4.10.zip

這時/home目錄下多了一個文件夾,opencv-2.4.10

4、編譯Opencv

cd /home/opencv-2.4.10

mkdir build

cd build/

使用cmake工具編譯生成makefiel,指定opencv安裝在/usr/local(這個安裝目錄最好不要改,如果要改也是弄成/usr/local/xx這種目錄)

cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

等到環境檢測完成

make

這時候就是等待安裝,時間有點長,這時候可以放在那裏幹其他事情......

技術分享

等到編譯完畢,install一下讓它生效

make install

技術分享

可以看到在usr/local/lib下有很多編譯好的opencv動態鏈接庫

技術分享

在環境變量文件上寫庫的位置
vim /etc/ld.so.conf

在這個文件的最後一行加上/usr/local/lib

技術分享

然後運行/sbin/ldconfig

4、測試

寫一個測試代碼opencv.cpp,看opencv能否使用,這段代碼的意思是將一幅圖片轉換成灰度圖顯示出來,並且顯示出原圖

#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
int main(int argc,char **argv)
{
Mat img1,img2;
img1 = imread(argv[1], CV_LOAD_IMAGE_COLOR);
if(argc != 2 || !img1.data)
{
cout << "No image data\n";
return -1;
}
cvtColor(img1, img2, CV_RGB2GRAY);
namedWindow("img1", CV_WINDOW_AUTOSIZE);
namedWindow("img2", CV_WINDOW_AUTOSIZE);
imshow("img1", img1);
imshow("img2", img2);
waitKey(0);
return 0;

}

生成可執行文件opencv

g++ `pkg-config opencv --cflags --libs opencv` -o opencv opencv.cpp -I /usr/local/include/opencv -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_gpu -lopencv_ts -lopencv_video -lopencv_objdetect -lopencv_ml -lpthread

開發板連上顯示器,運行程序(下載一張圖片弄到同一文件夾下)

./opencv lena.jpg

效果如下:

技術分享

原文鏈接:http://dev.t-firefly.com/forum.php?mod=viewthread&tid=11482

關於在RK3288上安裝Opencv的方法