-1

我可以使用objective-c中的以下示例代码识别图像并检查nsfw、sfw等预测。

  // Initialize the Clarifai app with your app's ID and Secret.
ClarifaiApp *app = [[ClarifaiApp alloc] initWithAppID:@""
                                            appSecret:@""];

// Fetch Clarifai's general model.
[app getModelByName:@"general-v1.3" completion:^(ClarifaiModel *model, NSError *error) {
    // Create a Clarifai image from a uiimage.
    ClarifaiImage *clarifaiImage = [[ClarifaiImage alloc] initWithImage:image];

    // Use Clarifai's general model to pedict tags for the given image.
    [model predictOnImages:@[clarifaiImage] completion:^(NSArray<ClarifaiOutput *> *outputs, NSError *error) {
        if (!error) {
            ClarifaiOutput *output = outputs[0];

            // Loop through predicted concepts (tags), and display them on the screen.
            NSMutableArray *tags = [NSMutableArray array];
            for (ClarifaiConcept *concept in output.concepts) {
                [tags addObject:concept.conceptName];
            }
            dispatch_async(dispatch_get_main_queue(), ^{
                self.textView.text = [NSString stringWithFormat:@"Tags:\n%@", [tags componentsJoinedByString:@", "]];
            });
        }

      dispatch_async(dispatch_get_main_queue(), ^{
        self.button.enabled = YES;
      });

    }];
}];

为此,我可以获得模型,并从该模型中预测图像。

问题:

如何使裁剪功能?我无法获得 Clarifai 中可用的裁剪功能。

有任何想法吗。

4

1 回答 1

1

您可以使用ClarifaiCrop类创建裁剪并使用它来初始化ClarifaiImage

ClarifaiCrop *crop = [[ClarifaiCrop alloc] initWithTop:0.1 
                                                  left:0.1
                                                bottom:0.1
                                                 right:0.1];

其中 top、left、bottom 和 right 是从图像边界到感兴趣区域的距离的百分比(介于 0 和 1 之间)。在上面的示例中,图像将从每个边距裁剪 10%。

ClarifaiImage *clarifaiImage = [[ClarifaiImage alloc] initWithImage:image 
                                                            andCrop:crop];
于 2017-06-04T09:55:53.763 回答