用head-tracking plugin for compiz在Ubuntu上实现3D user interface

各种窗口管理器和美化相关
回复
头像
aukomn
帖子: 144
注册时间: 2008-05-03 14:09
联系:

用head-tracking plugin for compiz在Ubuntu上实现3D user interface

#1

帖子 aukomn » 2011-05-01 20:14

http://blog.phpwnage.com/article.php?id=44



前期准备:首先要有配制好了显卡驱动和CompizConfig Settings Manager 实现3D桌面。 有一个能用的摄像头 (A camera that works with OpenCV (please check the list if you are having issues after compiling))


1.安装Compiz -dev packages (compiz-dev, compiz-fusion-dev, compiz-bcop 一切与之相关的东东),
具体方法可以通过新立得软件包管理器实现,系统->系统管理->新立得软件包管理器,搜索Compiz ,把与之相关的软件包选中并安装;


2.安装OpenCV sudo apt-get update
apt-cache search opencv 查询OpenCV相关软件包
sudo apt-get install libcv4 libcvaux4 libhighgui4
sudo apt-get install libcv-dev libcvaux-dev libhighgui-dev

测试:进入samples下的c路径,g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing
如果成功运行,说明一切ok了


3.http://gitweb.compiz-fusion.org/?p=user ... 4fa;sf=tgz 就是要说的插件 (which has been adjusted for this particular commit of OpenCV )
首先要确你的环境可以编译这个插件(OpenCV和Compiz -dev packages 已经装好)

然后编译它:

代码: make && sudo make install

如果成功了你就可以进入配制环节了,如果不成功要检查上面的软件是否已正确安装或者还需到Compiz Wiki或OpenCV Wiki看看



Head Tracking 的一些调试快捷键:
<Alt><Super>Page_Up - Move window further into cube
<Alt><Super>Page_Down - Move window closer to viewer
<Alt><Super>W,A,S,D - Pan camera up, left, down, right, respectively
<Alt><Super>Q,E,R - Move camera out, in, and reset camera, respectively
<Alt><Super>T - Toggle mouse tracking


如果你已经到了这一步,你可以配置该插件。这需要相当多的尝试和错误一点点把东西搞流畅。强烈建议,可以增加的宽度和外地的视图选项 -它们的默认值是太低。如果您的显示不工作,它可能是因为摄像头设置为指向非常远或非常接近的:如果显示屏上出现翻转,​​这可能太近。如果显示已不工作或似乎不更新,它可能太远了。调整宽度,看看是否有帮助。如果没有一套有效值客观的工作,你可以与作者联系,做一些调试,以找到适合你的摄像头的设置。


下面是作者的视频
[flash=]http://www.tudou.com/programs/view/fQDao8cGA-Y/[/flash]

But I'm still having problems!
Please, post your issues here - don't post on other forums, as if there's a topic for "Headtracking", solving issue is probably not its purpose.
thunderlast
帖子: 34
注册时间: 2010-09-18 21:21

Re: 用head-tracking plugin for compiz在Ubuntu上实现3D user interf

#2

帖子 thunderlast » 2011-07-18 18:35

capture = cvCaptureFromCAM(0);
这个语句是怎么实现成功的?单独使用它总是失败阿。。。。
回复