在 Free Flight 示例应用程序 (ARDrone) 中使用 ARDrone 捕获静止图像

Posted

技术标签:

【中文标题】在 Free Flight 示例应用程序 (ARDrone) 中使用 ARDrone 捕获静止图像【英文标题】:Capturing still image with ARDrone in the Free Flight example app (ARDrone) 【发布时间】:2011-06-26 04:04:56 【问题描述】:

我一直在尝试从来自 SDK 的 Free Flight 示例应用程序中的 ARDrone 中抓取静止图像,但我似乎找不到一种干净的方法来做到这一点。 SDK 和应用程序过于紧密地交织在一起,我无法获取 Open GL 纹理。有什么想法吗?

【问题讨论】:

【参考方案1】:
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>

@interface UIView (Screenshot)

- (UIImage *)screenshot;

@end
#import "UIView+Screenshot.h"

@implementation UIView (Screenshot)

- (UIImage *)screenshot

    UIGraphicsBeginImageContext(self.bounds.size);
    [[UIColor clearColor] setFill];
    [[UIBezierPath bezierPathWithRect:self.bounds] fill];
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [self.layer renderInContext:ctx];
    UIImage *anImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();    
    return anImage;


@end

添加上面的 UIView 类别并使用

UIImage *image = [self.view screenshot];

【讨论】:

【参考方案2】:

如果您很高兴不直接通过 SDK 或 FreeFlight 应用程序,请查看 felixge 的 node.js 客户端以与 AR 无人机交互:https://github.com/felixge/node-ar-drone

他有一个有用的PNG stream example。你可以运行它,然后在你的本地主机上获取图片。

(这里的主要缺点是您将无法使用您的 iphone 应用程序等控制无人机,但必须通过 node.js 发送飞行命令。这实际上可能是一个优势,具体取决于您的需求喜欢做。)

【讨论】:

以上是关于在 Free Flight 示例应用程序 (ARDrone) 中使用 ARDrone 捕获静止图像的主要内容,如果未能解决你的问题,请参考以下文章

在 Test Flight 测试后提交应用到 App Store

Firefox 不会发送跨域资源共享 Pre-flight?

无法在 Windows 10 上运行作为服务运行的 Java 应用程序的 Continuous Flight Recorder

jdk11新特性——Java Flight Recorder

jdk11新特性——Java Flight Recorder

Time-of-Flight技术在距离测量和定位上的应用