在自由飞行示例应用程序(ARDrone)中使用ARDrone捕捉静止图像



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

#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];

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

他有一个有用的PNG流示例。您可以运行此程序,然后在本地主机上获取图片。

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

相关内容

  • 没有找到相关文章

最新更新