很不巧的,Kinect 剛出來一兩個禮拜的時候,我就買了。
被這種新世代的體感玩法所吸引,吸引我的不是遊戲,是這個技術。
這種技術將來一定會被廣泛的應用,絕對不只是用在遊戲主機上。
短期內,我們會看到被應用在電腦上,尤其是在 Presentation 方面。
長期看來,適合整合進數位家庭,可以取代一些既有的控制器,比如電燈開關或遙控器。
但以目前來說,我覺得這個技術還有改良的空間。
現在網路上已經有不少 hacker 分享出 Kinect hacking 的成果,目前 Windows、Linux、Mac OS 都有辦法使用 Kinect。
筆者 Linux 環境為 Ubuntu 10.04,在這邊分享一下手動安裝的作法。
OpenKinect Project:http://openkinect.org/wiki/Main_Page
安裝方式也可以參考:http://openkinect.org/wiki/Getting_Started
# 安裝必要套件
$sudo apt-get install git libusb-1.0-0-dev freeglut3-dev libxmu-dev libxi-dev \
cmake cython python-dev python-numpy python-opencv
# 下載 libfreenect
$git clone https://github.com/OpenKinect/libfreenect.git
# 編譯並安裝 libfreenect
$cd libfreenect
$cmake CMAKE_PREFIX_PATH=/usr
$make
$sudo make install
# 新增 udev rule
$sudo cp udev/51-kinect.rules /etc/udev/rules.d/
# 編譯並安裝Python wrapper
$cd wrappers/python
$python ./setup build
$sudo python ./setup install --prefix=/usr
# run C/C++ examples
$glview
$cppview
$glpclview
# run Python example
$./demo_cv_sync.py
# 如果無法執行的話,請把 demo_cv_sync.py 修改成以下的樣子。
#!/usr/bin/env python
import freenect
from opencv.cv import *
from opencv.highgui import *
#import cv
#import highgui
import numpy as np
cvNamedWindow('Depth')
cvNamedWindow('RGB')
while 1:
depth, timestamp = freenect.sync_get_depth()
rgb, timestamp = freenect.sync_get_rgb()
cvShowImage('Depth', depth.astype(np.uint8))
cvShowImage('RGB', rgb[:, :, ::-1].astype(np.uint8))
cvWaitKey(10)
import freenect
from opencv.cv import *
from opencv.highgui import *
#import cv
#import highgui
import numpy as np
cvNamedWindow('Depth')
cvNamedWindow('RGB')
while 1:
depth, timestamp = freenect.sync_get_depth()
rgb, timestamp = freenect.sync_get_rgb()
cvShowImage('Depth', depth.astype(np.uint8))
cvShowImage('RGB', rgb[:, :, ::-1].astype(np.uint8))
cvWaitKey(10)
沒有留言:
張貼留言