2017-09-26 4 views
2

enter image description here

は、私が使用可能な任意のオーバーロード

と一致しないエラー

引数ラベル '(画像を:)' 取得していますネイティブリアクト

私はこのチュートリアルに従っhereし、リンゴのドキュメンテーションですが、フレームワークとReact Nativeのイメージを橋渡ししようとすると、このエラーが発生しました。 SwiftとReac Nativeの間のブリッジが働いていますが、coreMLを使用しようとしたときにエラーが発生しました

私はそれが新しい迅速な構文とは関係していると思いますが、

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 { 
} 

} 
} 

答えて

1

あなたはその後、送信、クラス(追加やデータモデルとき、これは自動生成クラスである)modelInputを初期化する必要があります。ここではネイティブリアクトまだ

とCoreMLを使用して、誰もが私の完全な機能で見たことがありません予測へのmodelInput。続き

は役立つかもしれないコードスニペットです:

 // 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) 

あなたは参照用thisを使用することができます。

+0

R_D_Spend、Administration、およびMarketing_Spendは何か混乱していますか?私はこれをやろうとしましたが、init行だけで同じエラーが発生します。 – codegeek511

+0

R_D_Spend、Administration、Marketing_Spendは私のMLモデルのパラメータです。あなたのMLModelをXcodeで開きます。あなたの代わりにそれを使用しなければならないあなたのmlモデルの入出力パラメータを表示します。 – user3378829

+0

Hmmmパラメータは 'image'です。 – codegeek511