樹莓派學習筆記—— 源碼方式安裝opencv

0.前言php

    本文介紹怎樣在樹莓派中經過編譯源碼的方式安裝opencv,並經過一個簡單的樣例說明怎樣使用opencv。

    不少其它內容請參考——【 樹莓派學習筆記——索引博文

1.下載若干依賴項
    在開始安裝以前。最好更新樹莓派軟件源。

假設更新時間太長,請參考博文改動軟件源網絡地址——樹莓派學習筆記——改動樹莓派軟件源html

sudo apt-get update

    請依次安裝下面依賴項,這些必須安裝的依賴項來自於opencv官網的說明,在多數debian系統中都可以採用這樣的方式進行安裝。事實上在樹莓派中 build-essential已經默認安裝,但是cmake等其它內容仍需要手動安裝。
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
sudo apt-get install python-dev python-numpy
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev

2.得到源碼
    在樹莓派用戶文件夾中創建opencv文件夾
mkdir opencv

    經過sourceforge站點獲取opencv源碼,本文選擇2.4.9版本號。下載過程可能比較緩慢,請耐心等待。
wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download opencv-2.4.9.zip

    解壓源碼。得到一個名爲opencv-2.4.9的文件夾
unzip opencv-2.4.9.zip

3.編譯源碼
    進入opencv源碼文件夾,在該文件夾中新建一個名爲release的文件夾。
cd ~/opencv/opencv-2.4.9
mkdir release
cd release
    使用cmake工具在該文件夾中生成makefile文件,指定opencv的安裝文件夾爲 /usr/local,opencv的源碼位於上一層文件夾。
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    編譯源碼並安裝(編譯源碼的時間很的長,make以後我便睡去,次日早上才運行install)
make
sudo make install
    更新搜索動態連接庫
sudo ldconfig

4.演示樣例
【C++】 ——經過代碼加載一張圖片。經過opencv把彩色圖片轉換爲黑白圖片。並把原圖和轉換後的圖片輸出到屏幕中。
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main (int argc, char **argv)
{
    Mat image, image_gray;
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR );
    if (argc != 2 || !image.data) {
        cout << "No image data\n";
        return -1;
    }
   
    cvtColor(image, image_gray, CV_RGB2GRAY);
    namedWindow("image", CV_WINDOW_AUTOSIZE);
    namedWindow("image gray", CV_WINDOW_AUTOSIZE);
   
    imshow("image", image);
    imshow("image gray", image_gray);
   
    waitKey(0);
    return 0;
}
【makefile】
INCLUDE = $(shell pkg-config --cflags opencv)
LIBS = $(shell pkg-config --libs opencv)
SOURCES = test.cpp
# 目標文件
OBJECTS = $(SOURCES:.cpp=.o)
# 可運行文件
TARGET = test
$(TARGET):$(OBJECTS)
    g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)
$(OBJECTS):$(SOURCES)
    g++ -c $(SOURCES)
clean:
    rm $(OBJECTS) $(TARGET)
# 編譯規則 $@表明目標文件 $< 表明第一個依賴文件
%.o:%.cpp
    g++ -I $(INCLUDE) -o $@ -c $<
【簡要說明】
    經過 pkg-config --cflags opencv 得到opencv相關頭文件路徑,經過 pkg-config --libs opencv得到opencv擴展庫
    不少其它makefile知識請查看——  Linux學習筆記——例說makefile 索引博文
【編譯並運行】
make
./test raspberry.jpg
    演示樣例中加載一張名爲raspberry.jpg圖片。在該演示樣例中,圖片和可運行文件test應在同一個文件夾中。

運行結果例如如下圖所看到的,左側爲原始圖片,右側爲轉換後的圖片。選擇的圖片色彩不夠豐富。彩色圖片和黑白圖片的對照不夠強烈,但也可證實opencv在樹莓派中運行正常。python


圖1 運行結果
5.總結
樹莓派安裝opencv並不困難。陷阱很少但是耗時較長,需要保持足夠的耐心。


參考資料
相關文章
相關標籤/搜索