1. 程式人生 > >樹莓派+opencv+xtion/kinect

樹莓派+opencv+xtion/kinect

1. 安裝xtion/kinect 驅動

1.1. 安裝支援庫

sudo apt-get update
sudo apt-get install g++ python libusb-1.0-0-dev freeglut3-dev
sudo apt-get install doxygen graphviz mono-complete
sudo apt-get install openjdk-7-jdk

1.2. 下載驅動

git clone https://github.com/OpenNI/OpenNI.git
git clone git://github.com/avin2/SensorKinect.git (如果你的是kinect 下載此項)
git clone

https://github.com/PrimeSense/Sensor.git (如果你的是xtion下載此項)
分別修改OpenNI 和Sensor
兩個資料夾下的Platform.Arm 檔案,將其中的
-mfloat-abi=softfp 改為 -mfloat-abi=hard
操作如下圖
這裡寫圖片描述

這裡寫圖片描述

最後到 software/OpenNI/Platform/Linux/Bin/Arm-Release目錄執行(其中的software為自己建立的資料夾)

cd ~/software/OpenNI/Platform/Linux/Bin/Arm-Release
sudo ./Sample-NiCRead

執行完畢,如果遇到 usb transfer timeout 的情況,則是樹莓派的usb供電不足,不能啟動xtion/kinect

解決方法:

cd /boot
sudo vim config.txt

在最後一行加入
max_usb_current=1
重啟

2. 安裝opencv

sudo apt-get install libcv-dev

安裝中如果遇到 Failed to fetch http://xxx.deb, 如下圖所示的情況
這裡寫圖片描述

解決方法:
執行:
1. wget http://xxx.deb
2. sudo dpkg -i xxx.deb
3. 重新執行

sudo apt-get install libcv-dev

這裡寫圖片描述

這裡寫圖片描述
這裡寫圖片描述

3. 使用opencv+openni 讀取xtion的資料(彩色圖和深度圖)

新建loadimage.cpp

#include <stdlib.h>   
#include <iostream>   
#include <string>   
#include <XnCppWrapper.h>   
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>   
using namespace std;  
using namespace cv;  

void CheckOpenNIError( XnStatus result, string status )  
{   
    if( result != XN_STATUS_OK )   
        cerr << status << " Error: " << xnGetStatusString( result ) << endl;  
}  

int main( int argc, char** argv )  
{  
    XnStatus result = XN_STATUS_OK;    
    xn::DepthMetaData depthMD;  
    xn::ImageMetaData imageMD;  

    namedWindow("depth",1);  
    namedWindow("image",1);  
    char key=0;  
    // context    
    xn::Context context;   
    result = context.Init();   
    CheckOpenNIError( result, "initialize context" );    
    // creategenerator     
    xn::DepthGenerator depthGenerator;    
    result = depthGenerator.Create( context );   
    CheckOpenNIError( result, "Create depth generator" );    
    xn::ImageGenerator imageGenerator;  
    result = imageGenerator.Create( context );   
    CheckOpenNIError( result, "Create image generator" );    
    //map mode     
    XnMapOutputMode mapMode;   
    mapMode.nXRes = 640;    
    mapMode.nYRes = 480;   
    mapMode.nFPS = 30;   
    result = depthGenerator.SetMapOutputMode( mapMode );    
    result = imageGenerator.SetMapOutputMode( mapMode );    

    depthGenerator.GetAlternativeViewPointCap().SetViewPoint( imageGenerator );   

    result = context.StartGeneratingAll();    
    Mat cvDepthImg;
    Mat cvBGRImg;
    context.WaitAndUpdateAll( );
    while( (key!=27) && !(result = context.WaitNoneUpdateAll( )))   
    {    
        //get meta data   
        depthGenerator.GetMetaData(depthMD);   
        imageGenerator.GetMetaData(imageMD);  
        //OpenCV output 
Mat cvDepthRawImg(depthMD.FullYRes(),  depthMD.FullXRes(), CV_16UC1, (char *)depthMD.Data());  
        cvDepthRawImg.convertTo(cvDepthImg, CV_8U, 255.0/(depthMD.ZRes()));  
imshow("depth", cvDepthImg);

Mat cvRGBImg(imageMD.FullYRes(), imageMD.FullXRes(), CV_8UC3, (char *)imageMD.Data());  
cvtColor(cvRGBImg, cvBGRImg, CV_RGB2BGR);  
        imshow("image", cvBGRImg); 
        key=cvWaitKey(20);  
    }  

    //destroy   
    destroyWindow("depth");  
    destroyWindow("image");  

    context.StopGeneratingAll();  
    context.Release();  
    return 0;  
}

新建makefile

CC = g++
TARGET = loadimage
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/ni
SRCS = loadimage.cpp
OBJS = $(SRCS:.cpp=.o)
# 庫檔案
DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui -lOpenNI
# 連結可執行檔案
$(TARGET):$(OBJS)
    $(CC) -o [email protected] $^ $(DLIBS)
clean:
    rm -rf $(TARGET) $(OBJS)
# 編譯規則 [email protected]代表目標檔案 $<代表第一個依賴檔案
%.o:%.cpp
    $(CC) -o [email protected] -c $<

執行
make
這裡寫圖片描述
這裡寫圖片描述

相關推薦

樹莓+opencv+xtion/kinect

1. 安裝xtion/kinect 驅動 1.1. 安裝支援庫 sudo apt-get update sudo apt-get install g++ python libusb-1.0-0-dev freeglut3-dev sudo apt-get

樹莓——opencv讀取攝像頭

樹莓派專用CSI攝像頭插到樹莓派的CSI口上並在在raspi-config中開啟後就可以使用Raspistill命令直接使用,但如果在OpenCV中呼叫CSI攝像頭會出現無資料的現象(cv2.VideoCapture(0)這時不會報錯)。這是因為樹莓派中的camera mod

樹莓-opencv安裝配置

(1)安裝準備工作      a.獲取更新快取:sudo apt-get update            b.安裝opencv:sudo apt-get install libcv-dev                         c.耐心等待安裝完成 not

樹莓的設置及opencv的安裝詳解

其它 port 調用 ras 好的 lists pen codec dconf 1.樹莓派的系統下載網站為:https://www.raspberrypi.org/downloads/raspbian/,其中選擇Raspbian Jessie with desktop此版本

Python調用OpenCV實現攝像頭的運動檢測[樹莓版]

then see pip port wid warning number 12px ram [硬件環境] RaspberryPi 3代B型(英國版) [軟件環境] 操作系統:Raspbian Python版本:2.7.3 Python庫: 1.1) opencv-pytho

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

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

樹莓 python3 安裝 opencv 最容易的方法(非編譯方式)

所需環境 通過pip3安裝的。 sudo pip3 install opencv-python imutils numpy scipy pillow 通過系統自帶環境apt-get安裝的。 sudo apt-get install libatlas-base-dev li

單目跟蹤位姿產品研發(一)----樹莓入手設定+opencv+qt+raspicam配置開發環境

       最近3個月做了一個基於單目相機跟蹤物體位姿的橫向專案,所用到的硬體主要有Raspberry Pi 3B+,Raspberry Pi Camera V2紅外夜視相機,以及嘉肯光電定製的紅外環形光源。 初次接觸樹莓派,

【直搗黃龍】樹莓安裝OpenCV 3.4.1

首先把準備工作做好,先確保已經更換好源:樹莓派換源 首先說說配置:我的樹莓派是2018年11月份買的,系統是2018-11-13-raspbian-stretch 附上:樹莓派系統下載地址 本文程式碼均可直接複製進shell 1.安裝OpenCV 依賴包: a. 更新軟體源

樹莓python OpenCV捕獲顏色塊並通過串列埠返回座標資訊

樹莓派python OpenCV捕獲顏色塊並通過串列埠返回座標資訊 樹莓派python OpenCV捕獲顏色塊並通過串列埠返回座標資訊 介紹 開發環境 思路 程式碼 串列埠部分 影象處理部分

樹莓安裝Ubuntu mate 16.04 + opencv 2.4.10

參考http://blog.csdn.net/pengz0807/article/details/49915997,http://blog.csdn.net/surgewong/article/details/39078251 第一步:先執行: sudoapt-get updat

樹莓/PC實現實時攝像頭資料共享(Python—OpenCV

使用Python和OpenCV實現樹莓派/PC實時攝像頭資料共享,主要分為伺服器和客戶端兩部分。 伺服器Demo如下: #伺服器端 import socket import threading import struct import time import cv2 import nu

Python+opencv學習筆記之人臉視訊採集及實時檢測(樹莓3B+下檢測)

實驗目標: 1.首先通過opencv程式設計寫一個可以呼叫攝像頭並且能將攝像頭捕捉到的內容進行儲存。 2.將視訊檔案傳送到我們的樹莓派上,然後再利用Python編寫程式對視訊進行人臉識別處理,最後將人臉識別後的視訊儲存。 3.對某一張圖片進行處理,讓其具有毛玻璃效果,並將處理後的圖片儲存。

樹莓安裝opencv跳坑指南(pip安裝,免原始碼編譯)

在樹莓派上安裝opencv-Python用sudo pip install opencv-python命令總是安裝不上,顯示錯誤說網頁上找不到原始檔 而你又不想用很複雜的壓縮包安裝,可以考慮一下這個方法。廢話不多說下面開始 工具 :1. 樹莓派3b  (官方系統)  

樹莓安裝 opencv / dlib / PyQt5

安裝opencv: 樹莓派安裝opencv   安裝dlib:  安裝相關依賴: sudo apt-get install build-essential cmake sudo apt-get install libgtk-3-dev sudo apt-get

樹莓安裝opencv

sudo apt-get update sudo apt-get install libopencv-dev sudo apt-get install python-opencv 如果在第一行或第二行報錯的話(can’t fetch blablabla 還是什麼的 忘了是什

樹莓用Python+OpenCV做人臉識別

硬體:樹莓派 B+ 先安裝python-opencv:  sudo apt-get install python-opencv Python 2.7   OpenCV3.0 然後在樹莓派usb埠插入一個通用的usb攝像頭,看系統是否自動識別並

樹莓入手設定+opencv+qt配置開發環境

       最近2個月做了一個基於單目相機跟蹤物體位姿的橫向專案,所用到的硬體主要有Raspberry Pi 3B+,Raspberry Pi Camera V2紅外夜視相機,以及嘉肯光電定製的紅外環形光源。 初次接觸樹莓派,配置上踩過一些坑,現記錄下來: 1、裝系統。

樹莓上 安裝並 運行opencv

targe numpy key chang unix 使用 ras argv pac http://www.cnblogs.com/farewell-farewell/p/6125761.html 1.先安裝依賴項 OpenCV 2.2以後版本需要使用Cmake生

樹莓上 安裝並 執行opencv

http://www.cnblogs.com/farewell-farewell/p/6125761.html     1.先安裝依賴項 OpenCV 2.2以後版本需要使用Cmake生成makefile檔案,因此需要先安裝cmake。 s