ARinChina-增强现实中国技术论坛
标题: 开发基于FLARToolKit的增强现实(AR)基础教程(七) [打印本页]
作者: AngleYF 时间: 2013-5-29 10:46
标题: 开发基于FLARToolKit的增强现实(AR)基础教程(七)
建立一个可以提供数据的摄像头比你想象得简单得多。在我们构建利用摄像头的文件的同时,我们将会提出如何切换debug模式开闭让我们从添加下面的方法开始:- /**
- * Creates a camera or emulator to use as the src for the ARDetector
- * to analyze for markers.
- *
- */
- protected function createCamera():void
- {
- if(debug || !Camera.getCamera())
- {
- createEmulatorCard();
- }
- else
- {
- webcam = Camera.getCamera();
- webcam.setMode(arDetector.width, arDetector.height, 30);
- video = new Video(arDetector.width, arDetector.height);
- video.attachCamera(webcam);
- }
- }
复制代码这个是用来检查debug模式是否激活或者是否有摄像头被检测到并且创建了CardEmulator。如果debug模式没被激活,我们创建了一个新的Camera实例并实例化了。video将会显示从摄像头来的视频流,所以我们将它匹配ARDetector的canvas的分辨率(320*240)并且将摄像头的实例附加给video。
声明的变量和导入的类包:
- protected var debug:Boolean = false;
- protected var webcam:Camera;
- protected var video:Video;
- import flash.media.Camera;
- import flash.media.Video;
复制代码 下一步在我们的init方法中将createEmulatorCard();替换为- createCaptureSource();
- createCamera();
复制代码 现在我们需要做的是移除cardEmulator.render()- public function renderViewport(event:Event = null):void
- {
- updateCaptureBitmap();
- try
- {
- if (arDetector.detectMarker()) {
- arDetector.calculateTransformMatrix(resultMat);
- baseNode.setTransformMatrix(resultMat);
- active();
- }
- else
- {
- inactive();
- }
- }
- catch(errObject:Error) {
- trace(errObject.message);
- }
-
- renderer.renderScene(scene, camera, viewport);
复制代码 并改变我们的updateCaptureBitmap:- protected function updateCaptureBitmap():void
- {
- if(debug || !video)
- {
- cardEmulator.render();
- capturedSrc.bitmapData.draw(cardEmulator.viewport);
- }
- else
- {
- capturedSrc.bitmapData.draw(video);
- }
- }
复制代码 现在如果你编译你的程序你会被询问是否使用摄像头,点击确认之后就大功告成啦!!!
转载http://miyaonanhai.blogbus.com/logs/70837216.html
欢迎光临 ARinChina-增强现实中国技术论坛 (http://dev.arinchina.com/) |
Powered by Discuz! X3.2 |