2017-09-13 6 views
0

私はSwift Programmingの初心者です。私はコアグラフィックスを使用して顔検出を達成しようとしています。これまで私は以下のように書いています。私は地元のfile.ItからのCImageを作成する方法がわからないSwiftで顔を検出

let ciimage=CIImage(contentsOf: "/Users/me/Desktop/test.jpg");    
let accuracy = [CIDetectorAccuracy: CIDetectorAccuracyHigh] 
let faceDetector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: accuracy) 


for face in faces as! [CIFaceFeature] { 

print("Found bounds are \(face.bounds)") 
      } 

は、私が入力したURLを必要とするようだ。.. 私が間違って何をやって、アドバイスをしてください。

UPDATE:

私は答えを参考に自分のコードを更新したが、これはどんな結果が得られない、実行に

let userDirectory = FileManager.default.homeDirectoryForCurrentUser 
let desktopDirectory = userDirectory.appendingPathComponent("Desktop") 
let pictureUrl = desktopDirectory.appendingPathComponent("test").appendingPathExtension("jpg") 

let image = CIImage(contentsOf: pictureUrl) 

let faceDetector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: [CIDetectorAccuracy: CIDetectorAccuracyHigh]) 
let faces = faceDetector?.features(in: image!) as! [CIFaceFeature] 
print("Number of faces: \(faces.count)") 

を提供します。

+0

@Leo Dabus ...その質問は、iOS版に適用されます。これは、ちょうど何が発生している問題であることに気づい – techno

+0

を指し? 'ciimage'は不要ですか?それともエラーが出ますか? –

+0

OS X –

答えて

1

FileManagerを使用して、システムのURLを取得する必要があります。

guard let desktopDirectory = FileManager.default.urls(for: .desktopDirectory, in: .userDomainMask).first else {return} 
let pictureUrl = desktopDirectory.appendingPathComponent("test").appendingPathExtension("jpg") 

let image = CIImage(contentsOf: pictureUrl) 
+0

ユーザデスクトップのURLを取得するには、 'FileManager.default.urls(.desktopDirectoryの場合:.userDomainMask).first'を使用してください。 –

+0

ありがとうございます。私の更新をご覧ください。 – techno

+0

@technoどういう意味ですか?これは何の結果ももたらさない。 'CIImage'は' nil'ですか? –