0

我在像这样的图像的所有可能方向上使用 iOS 人脸检测器

for (exif = 1; exif <= 8 ; exif++)
{
    @autoreleasepool {


    NSNumber *orientation = [NSNumber numberWithInt:exif];
    NSDictionary *imageOptions = [NSDictionary dictionaryWithObject:orientation forKey:CIDetectorImageOrientation];
    NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];

    glFlush();
    features = [self.detector featuresInImage:ciimage options:imageOptions];
    //features = [self.detector featuresInImage:ciimage];

    if (features.count > 0)
    {
        NSString *str = [NSString stringWithFormat:@"-I- found faces using exif %d",exif];
        [faceDetection log:str];
        NSTimeInterval duration = [NSDate timeIntervalSinceReferenceDate] - start;
        str = [NSString stringWithFormat:@"-I- facedetection total runtime is %f s",duration];
        [faceDetection log:str];
        self.exif=[[NSNumber alloc] initWithInt:exif];
        break;
    }
    else {
        features = nil;   
    }
    }

}

但在分析器中似乎每次内存都在增长:

不确定这是否属实,如果是,如何解决问题

按总字节数排序并且仍然存在

类别的详细信息

相关代码

4

1 回答 1

0

在您的循环中,大多数对象都是自动释放类型,主要问题似乎是您在每个循环中为“功能”分配了新值,如果“if”语句为真,那么您并没有使其为零。尝试这样做:

if(features.count > 0)
{
  /// your existing code here
  features = nil;
  break;

}
于 2013-09-12T10:33:41.983 回答