首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vize.ai图像识别在iOS应用中的应用

Vize.ai图像识别在iOS应用中的应用
EN

Stack Overflow用户
提问于 2017-10-27 07:44:08
回答 1查看 246关注 0票数 3

我正在尝试使用Swift 4在一个Vize.ai应用程序中实现iOS图像识别。

在他们的文档中,这是他们为目标C提供的代码示例:

代码语言:javascript
复制
NSDictionary *headers = @{@"Authorization": @"JWT {your JWT token}", @"Content-Type": @"application/x-www-form-urlencoded", @"Accept": @"text/plain"};
UNIUrlConnection *asyncConnection = [[UNIRest post:^(UNISimpleRequest *request) {
  [request setUrl:@"http://cl-api.vize.ai/{your task ID}?image={path/myimage.png}"];
  [request setHeaders:headers];
}] asundefinedAsync:^(UNIHTTPundefinedResponse *response, NSError *error) {
  NSInteger code = response.code;
  NSDictionary *responseHeaders = response.headers;
  UNIJsonNode *body = response.body;
  NSData *rawBody = response.rawBody;
}];

如您所见,我必须向请求传递图像路径。在我的应用程序中,用户可以选择分析添加到项目资产文件夹中的默认图片,或者从库中添加/拍照。

在这个例子中,图像路径应该是什么?

下面是如何使用Swift 4发出请求,我要添加的任何图像路径都会给我一个“丢失的图像或url”响应错误:

代码语言:javascript
复制
let headers: HTTPHeaders = [
    "Authorization": "JWT \(jwtToken)",
    "Content-Type": "application/x-www-form-urlencoded",
    "Accept": "text/plain"
]
let url = "https://cl-api.vize.ai/\(taskID)?image=\(imagePath)"
Alamofire.request(url, method: .post, parameters: nil, encoding: JSONEncoding.default, headers: headers).responseJSON { response in
    debugPrint(response)
}

任何帮助都是非常感谢的。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-27 08:32:19

因此,我设法找到了一个使用多部分表单数据的解决方案。这是它的完整代码。

代码语言:javascript
复制
func getVizeImageAnalysis(image: UIImage) {
        let headers: HTTPHeaders = [
            "Authorization": "JWT \(jwtToken)",
            "Content-Type": "application/x-www-form-urlencoded",
            "Accept": "text/plain"
        ]
        let url = "https://cl-api.vize.ai/\(taskID)"

        manager.upload(multipartFormData: { multiPartData in
            // Add image
            if let imageData = UIImageJPEGRepresentation(image, 0.8)  {
                multiPartData.append(imageData, withName: "image", fileName: "pickedImage", mimeType: "image/jpeg")
            }

        }, to: url, method: .post, headers: headers, encodingCompletion: {
            encodingResult in
            switch encodingResult {
            case .success(let request, _, _):
                request.responseJSON{ response in
                debugPrint(response)
            }
            case .failure(let encodingError):
                print(encodingError)
            }
        })
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46969941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档