1. 程式人生 > >樹莓派學習筆記—— 原始碼方式安裝opencv

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

0.前言

    本文介紹如何在樹莓派中通過編譯原始碼的方式安裝opencv,並通過一個簡單的例子說明如何使用opencv。1.下載若干依賴項    在開始安裝之前,最好更新樹莓派軟體源。如果更新時間太長,請參考博文修改軟體源網路地址——樹莓派學習筆記——修改樹莓派軟體源sudo apt-get update    請依次安裝以下依賴項,這些必須安裝的依賴項來自於opencv官網的說明,在多數debian系統中都可以採用這種方式進行安裝。其實在樹莓派中build-essential已經預設安裝,但是cmake等其他內容仍需要手動安裝。sudo apt-get install build-essential
sudo 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-dev2.獲得原始碼    在樹莓派使用者目錄中建立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.zip3.編譯原始碼    進入opencv原始碼目錄,在該目錄中新建一個名為release的資料夾。cd ~/opencv/opencv-2.4.9mkdir releasecd 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 ldconfig4.示例【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)
# 編譯規則 [email protected]代表目標檔案 $< 代表第一個依賴檔案
%.o:%.cpp
    g++ -I $(INCLUDE) -o [email protected] -c $<
【簡要說明】    通過pkg-config --cflags opencv 獲得opencv相關標頭檔案路徑,通過pkg-config --libs opencv獲得opencv擴充套件庫【編譯並執行】make./test raspberry.jpg    示例中載入一張名為raspberry.jpg圖片。在該示例中,圖片和可執行檔案test應在同一個目錄中。執行結果如下圖所示,左側為原始圖片,右側為轉換後的圖片。選擇的圖片色彩不夠豐富,彩色圖片和黑白圖片的對比不夠強烈,但也可證明opencv在樹莓派中執行正常。
圖1 執行結果5.總結樹莓派安裝opencv並不困難,陷阱不多但是耗時較長,需要保持足夠的耐心。參考資料

相關推薦

樹莓學習筆記—— 原始碼方式安裝opencv

0.前言    本文介紹如何在樹莓派中通過編譯原始碼的方式安裝opencv,並通過一個簡單的例子說明如何使用opencv。1.下載若干依賴項    在開始安裝之前,最好更新樹莓派軟體源。如果更新時間太長,請參考博文修改軟體源網路地址——【樹莓派學習筆記——修改樹莓派軟體源】s

樹莓學習筆記——apt方式安裝opencv

0.前言    本文介紹如何在樹莓派中通過apt方式安裝opencv,並通過一個簡單的例子說明如何使用opencv。相比於原始碼方式安裝opencv,通過apt方式安裝過程步驟簡單些,消耗的時間也少一些。通過apt方式安裝沒有自動生成opencv.pc檔案,所以在編寫make

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

鏈接 spa lin fonts 耗時 sdn 圖片 ostream unix 0.前言? ? 本文介紹怎樣在樹莓派中通過編譯源碼的方式安裝opencv,並通過一個簡

樹莓學習筆記——webiopi安裝與入門

    webiopi是一個可控制樹莓派GPIO的web框架,該框架面向物聯網IoT開發。該專案託管於google,並可在sourceforge上下載到原始碼。現在webiopi已經發展到0.7版本,webiopi支援REST Server,CoAP server,並提供python庫和javascript庫

樹莓學習筆記樹莓入坑筆記二 LCD安裝

樹莓派入坑筆記 ——LCD安裝        上次將系統安裝完成之後,只能通過遠端連線或者連線HDMI顯示器,對於小巧的樹莓派不是特別方便。因此安裝一塊與其體積相似的LCD是個不錯的選擇。 一.3.5寸LCD簡介 (1)螢幕簡介 (2)主要引數:        解析度:4

樹莓學習筆記——使用檔案IO操作GPIO SysFs方式

0 前言    本文描述如果通過檔案IO sysfs方式控制樹莓派 GPIO埠。通過sysfs方式控制GPIO,先訪問/sys/class/gpio目錄,向export檔案寫入GPIO編號,使得該GPIO的操作介面從核心空間暴露到使用者空間,GPIO的操作介面包括direction和value等,direct

樹莓學習筆記二:軟體包安裝

上一篇我們完成了 樹莓派ubuntu映象的燒錄和ROS的安裝,這一篇我們來講一下到底需要裝哪些軟體包 軟體1:vim(根據個人習慣) sudo apt-get install vim 軟體2:bo

樹莓Python3 最簡單方式安裝OpenCv3.4.0

因為最近在開發使用樹莓派+usb攝像頭識別模組,打算用OpenCv,發現網上的樹莓派OpenCv安裝教程都過於繁瑣佔用記憶體大,我經過自己的實驗,發現出了一種非常簡易快捷的方式,網速OK的話,十分鐘能安裝完成。 我用的環境: 樹莓派3b+ Python3.5.4

樹莓學習筆記——crontab定時執行指令碼

crontab定時執行指令碼 如果在玩樹莓派的過程中,我們需要定時或者定期的執行一些程式或指令碼,這裡有個好方法,就是Linux下的 crontab。 通常會用到的就是兩個命令: 檢視已有的定時任務 [email protected]:~ $ cront

樹莓學習筆記(7):利用bypy實現樹莓NAS同步百度雲

樹莓派製作NAS過程詳見http://www.cnblogs.com/xiaowuyi/p/4051238.html。 Bypy是一個百度雲/百度網盤的Python客戶端,主要的目的就是在Linux環境下(命令列)同步百度雲盤空間。Bypy要求python2.7

樹莓學習筆記——SQLite操作簡述

0 前言    本文介紹如何在樹莓派中利用SQLite資料庫儲存CPU溫度資料。SQLite是一款輕量級零配置資料庫,非常適合在樹莓派和其他嵌入式系統中使用。SQLite文件詳細資料豐富,本文不會詳細解釋SQLite資料庫操作的方方面面,只能結合具體場景按需說明。本文介紹的S

樹莓學習(三)基於OpenCv的人臉識別

博主的課程設計選題,開始在網上參考了諸多教程踩了很多坑最終得以實現,所以寫下心得總結,以便後人乘涼~https://blog.csdn.net/kyokozan/article/details/79192646https://blog.csdn.net/LC_1994/art

樹莓學習筆記(一)

1.樹莓派介紹 Raspberry Pi(中文名為“樹莓派”,簡寫為RPi,(或者RasPi / RPI) 是為學生計算機程式設計教育而設計,只有信用卡大小的微型電腦,其系統基於Linux。 隨著Windows 10 IoT的釋出,我們也將可以用上執行Wi

樹莓學習筆記——wiringPi GPIO使用詳解

2.BCM2835 GPIO相關暫存器    (該部分表述可能有誤,正在確認修改中)    樹莓派平臺的GPIO驅動,例如RPi.GPIO和WiringPi均採用直接操作GPIO暫存器的方式,樹莓派的CPU採用博通的BCM2835,想要更好的瞭解樹莓派的GPIO驅動實現就必須閱讀BCM2835的資料手冊。在B

樹莓學習筆記——使用標準PC104鍵盤

0 前言    本文將詳細介紹樹莓派的鍵盤設計。和多數的人的想法不同,世界上存在著各種各樣不同的鍵盤,中國人使用的鍵盤和美國人使用的鍵盤相同,而樹莓派源產自英國,英國的鍵盤和美國並不相同。國內多使用標準104鍵鍵盤,下面就講講如何配置。    【相關博文】1 PC104標準鍵

樹莓學習筆記——GPIO功能學習

    可以在windows中編寫程式碼,如果是Python指令碼可通過FTP軟體傳輸到樹莓派中,然後使用SSH客戶端登入到樹莓派中執行Python指令碼。如果是C語言檔案,除了使用FTP傳輸之外還需要在樹莓派上編譯才可以生成可執行檔案(相當於windows上的exe檔案)。相關軟體操作請參考【樹莓派學習筆記

樹莓學習筆記——I2C Tools 學習筆記

說明2:此處I2C匯流排共掛載兩個裝置——PCF8574和AT24C04,從機地址0x20為PCF8574,從機地址0x50和0x51為AT24C04,請注意AT24C04具備兩個I2C地址,相關內容請產看參考資料6.4。

樹莓學習筆記——UART使用

# -*- coding: utf-8 -* import serial import time # 開啟串列埠 ser = serial.Serial("/dev/ttyAMA0", 9600) def main(): while True: # 獲得接收緩衝區字元

樹莓學習筆記——交叉編譯工具鏈

    交叉編譯工具較快開發的速度。樹莓派中已經安裝了gcc工具鏈,可在樹莓派中直接編譯原始碼生成可執行檔案。於此同時,PC機上也可使用gcc工具鏈生成可執行程式碼,但是和樹莓派上的gcc工具不同,PC機上的gcc工具生成intel或amd晶片上可執行的程式碼,但樹莓派卻是arm系列的晶片,顯然存在不小的差異

樹莓學習筆記——Linux I2C驅動說明

1.前言通常情況下,I2C裝置由核心驅動控制,但是某些情況下I2C裝置也可由使用者空間控制。如果在使用者空間控制I2C裝置,需要訪問/dev目錄中所提供的介面,在使用I2C裝置之前必須要載入i2c-dev裝置。每一個已經註冊的IC裝置都有一個編號,該編號從0開始計算。可以檢視