0

基本的な顔検出に CIDetector/CIFaceDetector を使用しようとしていますが、顔を正しく認識しているように見えますが、境界の四角形は、私が投げたすべてのもので一貫して不正確です。これは、緑色のボックスとして検出された境界を含むサンプルです: http://i.imgur.com/bQNaEnq.jpg

すべてがこの量だけ普遍的にシフトダウンまたはミラーリングされているようです. 座標が左上ではなく左下から来ているようです。この画像で 8 つの CIDetectorImageOrientations をすべて試しましたが、それらはすべて同じ間違った座標を返します。ここで何が欠けていますか?コードは次のとおりです。

NSDictionary *detectorOptions = @{ CIDetectorAccuracy : CIDetectorAccuracyHigh };
self.faceDetector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:detectorOptions];
self.features = [self.faceDetector featuresInImage:[CIImage imageWithCGImage:image.CGImage options:@{CIDetectorImageOrientation: @(1)}]];

それは本当にそれです。画像は、Web からの基本的な UIImage imageWithData: です。

4

1 に答える 1

1

UIKit と Core Image で作業しています。これらのフレームワークはそれぞれ、異なる調整システムを使用します。

  • UIKit調整システムは左上隅から始まります
  • Core Image 座標は左下から始まります

おそらく、コア イメージ座標を UIKit コンテキストに合わせて緑色の四角形を描画しています。コードは正常に機能します。座標を変換するだけです。

また、 iOS Dev Libraryでそれへの参照を見つけることができます

これら 2 つのシステム間の変換方法については、CoreImage と UIKit の座標に関するブログ投稿を参照してください。

于 2014-09-13T20:17:15.917 に答える