私は顔検出に CIFeature Class Reference を使用していますが、Core Graphics 座標と通常の UIKit 座標に少し混乱しています。これは私のコードです:
UIImage *mainImage = [UIImage imageNamed:@"facedetectionpic.jpg"];
CIImage *image = [[CIImage alloc] initWithImage:mainImage];
NSDictionary *options = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy];
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:options];
NSArray *features = [detector featuresInImage:image];
CGRect faceRect;
for (CIFaceFeature *feature in features)
{
faceRect= [feature bounds];
}
それはかなり標準的です。現在、公式ドキュメントによると、次のように書かれています。
境界 発見された機能を保持する長方形。(読み取り専用)
考察 四角形は画像の座標系にあります。
FaceRect を直接出力すると、get rect {{136, 427}, {46, 46}} になります。CGAffineTransfer を適用して正しい方向に反転すると、正しくないように見える負の座標が得られます。私が扱っている画像はImageViewにあります。
では、これらの座標はどの座標系にあるのでしょうか? 画像?イメージビュー? コアグラフィック座標? いつものコーディネート?