【问题标题】:Red Eye Correction红眼校正
【发布时间】:2016-12-03 00:17:01
【问题描述】:

为了添加红眼校正效果,我点击了这个链接:

How to remove red eye from image in iPhone?

通过 pod 安装在库之上。在我的课堂上添加了以下代码。

UIImage *redEyeImage = [UIImage imageNamed:@"Userimage"];

if (redEyeImage) {
    UIImage *newRemovedRedEyeImage = [redEyeImage redEyeCorrection];
    if (newRemovedRedEyeImage) {
        imgView.image = newRemovedRedEyeImage;
    }
}

但我没有得到所需的输出。有什么我想念的吗?或者是否有任何其他库来实现这个概念。请提出建议。

谢谢!

【问题讨论】:

  • 您确定图片名称输入正确吗?你能告诉我if语句是否执行了吗?
  • 是的,if 语句正在执行。但结果保持不变

标签: objective-c filter face-detection


【解决方案1】:

最后我用下面的代码解决了这个问题:

UIImage *img = [UIImage imageNamed:@"images.png"];
CIImage *image = [[CIImage alloc]initWithImage:img];
NSLog(@"after ciimage: %@", kCIImageAutoAdjustEnhance);
NSDictionary *options = [NSDictionary dictionaryWithObject:@"NO" forKey:kCIImageAutoAdjustEnhance];
NSLog(@"options: %@", options);
NSArray *adjustments = [image autoAdjustmentFiltersWithOptions:options];
NSLog(@"adjustments: %@  ", adjustments);

for (CIFilter * filter in adjustments)
{
    [filter setValue:image forKey:kCIInputImageKey];
    image = filter.outputImage;
}
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:image fromRect:image.extent];
UIImage *enhancedImage = [[UIImage alloc] initWithCGImage:cgImage];
CGImageRelease(cgImage);
self.img.image = enhancedImage;

【讨论】:

    【解决方案2】:

    您可以在两个 if 语句之后的行上设置断点,然后运行您的应用程序并查看它们是否被命中(可能redEyeImage 不存在或newRemovedRedEyeImage 不存在。

    另一种简单的检查方法是:

    UIImage *redEyeImage;
    UIImage *newRemovedRedEyeImage;
    
    redEyeImage = [UIImage imageNamed:@"Userimage"];
    
    if (redEyeImage) {
        newRemovedRedEyeImage = [redEyeImage redEyeCorrection];
        if (newRemovedRedEyeImage) {
            imgView.image = newRemovedRedEyeImage;
        }
    }
    
    NSLog(@"redEyeImage: %@", (redEyeImage != nil ? @"exists" : @"nil"));
    NSLog(@"newRemovedRedEyeImage: %@", (newRemovedRedEyeImage != nil ? @"exists" : @"nil"));
    

    然后运行它,看看底部的两个日志打印了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-24
      • 2012-10-26
      • 2021-07-08
      • 2011-01-29
      • 2018-06-05
      • 2018-04-15
      • 2017-04-27
      相关资源
      最近更新 更多