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

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

0.前言

    本文介紹如何在樹莓派中通過apt方式安裝opencv,並通過一個簡單的例子說明如何使用opencv。相比於原始碼方式安裝opencv,通過apt方式安裝過程步驟簡單些,消耗的時間也少一些。通過apt方式安裝沒有自動生成opencv.pc檔案,所以在編寫makefile檔案時不能直接使用pkg-config工具,而需要逐個指定opencv_core、opencv_imgproc等動態連結庫。    【相關博文】1.安裝opencv    開始之前進行必要的更新工作。sudo apt-get update    安裝opencv。sudo apt-get install libcv-dev
    安裝過程比較緩慢,請耐心等待。    安裝完成之後,opencv相關的標頭檔案被安裝到/usr/lib目錄中,該目錄是linux預設標頭檔案查詢路徑。opencv的相關動態連結庫被安裝到/usr/lib目錄中。這些動態連結庫包括:【opencv_calib3d】——相機校準和三維重建【opencv_core】——核心模組,繪圖和其他輔助功能【opencv_features2d】——二維特徵檢測【opencv_flann】——快速最鄰近搜尋【opencv_highgui】——GUI使用者介面【opencv_imgproc】——影象處理【opencv_legacy】——廢棄部分【opencv_ml】——機器學習模組【opencv_objdetect】——目標檢測模組【opencv_ocl】——運用OpenCL加速的計算機視覺元件模組【opencv_video】——視訊分析元件2.簡單示例
【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】
CC = g++
# 可執行檔案
TARGET = test
# C檔案
SRCS = test.cpp
# 目標檔案
OBJS = $(SRCS:.cpp=.o)
# 庫檔案
DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui
# 連結為可執行檔案
$(TARGET):$(OBJS)
 $(CC) -o [email protected] $^ $(DLIBS)
clean:
 rm -rf $(TARGET) $(OBJS)
# 編譯規則 [email protected]代表目標檔案 $< 代表第一個依賴檔案
%.o:%.cpp
 $(CC) -o [email protected] -c $<
【簡單說明】DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui示例中使用了opencv中的核心部分、影象處理部分和GUI部分,所以依次增加opencv_core、opencv_imgproc、opencv_highgui動態連結庫。該部分和和【樹莓派學習筆記——原始碼方式安裝opencv】中的示例稍有不同,前文中的makefile使用LIBS = $(shell pkg-config --libs opencv)引入所有的opencv動態連結庫,此處手動指定相關庫按需連結。【編譯】make【執行】./test raspberry.jpg可執行檔案test和raspberry.jpg應在同一個目錄中。執行結果如下圖所示,說明opencv得以正常執行。
圖1 執行結果3.總結    通過原始碼方式安裝opencv更加方便,安裝時間也更短。

相關推薦

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

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

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

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

樹莓學習筆記—— 源碼方式安裝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開始計算。可以檢視