樹莓派學習筆記—— 源碼方式安裝opencv
阿新 • • 發佈:2018-02-19
鏈接 spa lin fonts 耗時 sdn 圖片 ostream unix
sudo apt-get install build-essentialsudo apt-get install cmakesudo apt-get install libgtk2.0-devsudo apt-get install pkg-configsudo apt-get install python-dev python-numpysudo 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 releasecd release? ? 使用cmake工具在該文件夾中生成makefile文件,指定opencv的安裝文件夾為/usr/local,opencv的源碼位於上一層文件夾。cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..? ? 編譯源碼並安裝(編譯源碼的時間很的長,make之後我便睡去,第二天早上才運行install)makesudo make install? ? 更新搜索動態鏈接庫sudo ldconfig
4.演示樣例【C++】——通過代碼加載一張圖片。通過opencv把彩色圖片轉換為黑白圖片。並把原圖和轉換後的圖片輸出到屏幕中。
0.前言
? ? 本文介紹怎樣在樹莓派中通過編譯源碼的方式安裝opencv,並通過一個簡單的樣例說明怎樣使用opencv。
? ? 很多其它內容請參考——【樹莓派學習筆記——索引博文】
1.下載若幹依賴項? ? 在開始安裝之前。最好更新樹莓派軟件源。
假設更新時間太長,請參考博文改動軟件源網絡地址——【樹莓派學習筆記——改動樹莓派軟件源】sudo apt-get update
? ? 請依次安裝下面依賴項,這些必須安裝的依賴項來自於opencv官網的說明,在多數debian系統中都能夠採用這樣的方式進行安裝。事實上在樹莓派中build-essential已經默認安裝,可是cmake等其它內容仍須要手動安裝。
2.獲得源碼? ? 在樹莓派用戶文件夾中建立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
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在樹莓派中運行正常。
圖1 運行結果5.總結 樹莓派安裝opencv並不困難。陷阱不多可是耗時較長,須要保持足夠的耐心。
參考資料【Installation in Linux】【Installation of OpenCV Raspberry pi】
樹莓派學習筆記—— 源碼方式安裝opencv