首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CoreML与

使用CoreML与
EN

Stack Overflow用户
提问于 2017-09-26 23:45:59
回答 1查看 1.3K关注 0票数 3

我收到错误了

参数标签‘(图像:)’不匹配任何可用的重载

我遵循了本教程这里和苹果的文档,但当我试图将框架连接到的图像时,我开始收到这个错误。Swift和REAC原住民之间的桥梁正在工作,只有当我开始尝试使用coreML时,我才得到错误

我认为这与新的快速语法有关,但我不知道如何修复它,我也还没有见过有人使用CoreML和

以下是我的全部功能:

代码语言:javascript
复制
import Foundation
import CoreML

@objc(Printer)
class Printer: NSObject {

  @objc func imageRec(_ image:CGImage) -> CVPixelBuffer? {
let model = Inceptionv3();

  UIGraphicsBeginImageContextWithOptions(CGSize(width: 299, height: 299), true, 1.0)
//image.draw(in: CGRect(x: 0, y: 0, width: 299, height: 299))
let newImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()

let attrs = [kCVPixelBufferCGImageCompatibilityKey: kCFBooleanTrue, kCVPixelBufferCGBitmapContextCompatibilityKey: kCFBooleanTrue] as CFDictionary
var pixelBuffer : CVPixelBuffer?
let status = CVPixelBufferCreate(kCFAllocatorDefault, Int(newImage.size.width), Int(newImage.size.height), kCVPixelFormatType_32ARGB, attrs, &pixelBuffer)
guard (status == kCVReturnSuccess) else {
  return nil
}

CVPixelBufferLockBaseAddress(pixelBuffer!, CVPixelBufferLockFlags(rawValue: 0))
let pixelData = CVPixelBufferGetBaseAddress(pixelBuffer!)

let rgbColorSpace = CGColorSpaceCreateDeviceRGB()
let context = CGContext(data: pixelData, width: Int(newImage.size.width), height: Int(newImage.size.height), bitsPerComponent: 8, bytesPerRow: CVPixelBufferGetBytesPerRow(pixelBuffer!), space: rgbColorSpace, bitmapInfo: CGImageAlphaInfo.noneSkipFirst.rawValue)

context?.translateBy(x: 0, y: newImage.size.height)
context?.scaleBy(x: 1.0, y: -1.0)

UIGraphicsPushContext(context!)
newImage.draw(in: CGRect(x: 0, y: 0, width: newImage.size.width, height: newImage.size.height))
UIGraphicsPopContext()
CVPixelBufferUnlockBaseAddress(pixelBuffer!, CVPixelBufferLockFlags(rawValue: 0))

guard let prediction = try? model.prediction(image: newImage) else {
}

}
}
EN

回答 1

Stack Overflow用户

发布于 2017-10-23 09:48:10

您必须插入modelInput类(添加和数据模型时这是一个自动生成类),然后将modelInput发送到预测。

下面是可能有帮助的代码片段:

代码语言:javascript
复制
        // create indupt data model
        // in your case this must be taking image as argument
        let input = ProfitPredictorInput.init(R_D_Spend: 
          Double(rndInv)!, Administration: Double(adminInv)!, 
           Marketing_Spend: Double(marketingInv)!)

        // give input data model to your mlmodel
        let outData = try mlModel?.prediction(input: input)

您可以使用作为参考。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46437384

复制
相关文章

相似问题

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