SDK集成

1.SDK说明

IVSR SDK 用于iOS设备上对图像进行超分辨率及画质增强处理

2.运行环境

  • iOS系统要求:需要iOS 7.0以上系统版本

  • iOS设备要求:需要iPhone5及以上

3.SDK引用

1)在Xcode中添加IVImageSR.framework引用

1.png

2)在工程Info.plist中添加App Transport Security Settings,SDK需要连接服务器进行用户验证和下载模型文件

2.png

3)在工程Info.plist中添加IVSR_SERVER地址http://api.imperial-vision.com:8085/

image.png

4)在代码中添加头文件

image.png

4.SDK初始化

SDK初始化时, 将发送用户提供有效的AppID和DevKey到服务端验证,并自动下载和管理模型文件, 初始化完成后SDK执行回调函数通知用户。如果AppID和DevKey验证不通过将返回错误,初始化失败。用户需要在初始化成功后调用IVManage对象的loadDefaultSRImage方法的才能正确加载IVImage实例,用于图像超分处理。

#import SR/IVImageSR.h>

@property (nonatomicstrongIVManager *ivManager;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    self.ivManager = [[IVManager alloc] initWithDevKey:@"f46a2c00-e6f2-45b1-bb17-6a48d543ffa3"];

    [self.ivManager updateModelsWithCallback:^(BOOL success, NSError *error) {

        if (success) {

            [self.ivManager loadDefaultIVImage];

        } else {

            NSLog(@"%@", error);

        }

    }];

    return YES;

}

@end

5.图像超分示例

IVImage对象将根据模型提供的超分处理能力,自动决定对输入图像超分的倍数。IVImage对象可以返回UIImage或id两种对象。id可以通过IVImageView对象快速地绘制到屏幕上。

  • 返回UIImage对象

UIImage *image = [UIImage imageNamed:@"demo.png"];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT0), ^{

UIImage *srImage = [self.ivManager.currentIVImage scaleImageWithImage:image];

});

  • 返回id对象

UIImage *image = [UIImage imageNamed:@"demo.png"];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT0), ^{

IVTexture *texture = [self.ivManager.currentIVImage scaleTextureWithImage:image];

});

  • 使用绘图对象IVSRImageView

@property (nonatomicweakIBOutlet IVImageView *ivImageView;

UIImage *image = [UIImage imageNamed:@"demo.png"];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT0), ^{

IVTexture *texture = [self.ivImage scaleTextureWithImage:image];

dispatch_sync(dispatch_get_main_queue(), ^{

[self.ivImageView render:texture];

});

});