ios - 获取 iOS 照片库中所有照片的数组,其中包含面孔

标签 ios objective-c core-image alassetslibrary photo-gallery

我正在尝试浏览 iOS 设备照片库中的每张照片,包括相机胶卷、相册等。

从那里,我想使用核心图像检查照片中是否有脸,如果有,将其添加到名为 detectedFaceArray 的数组中。

我知道我必须使用 ALAssetsLibrary 来枚举所有组,然后枚举照片库中的照片,但我不知道如何在每张照片上实现核心图像。我使用的代码是这里问题中被问到的代码:

https://stackoverflow.com/questions/18658783/enumerategroupswithtypes-alassetsgroupall-retrieves-only-the-number-of-photos-i

-(void)getAllPictures
{
self.galleryImages=[[NSMutableArray alloc] init];
mutableArray =[[NSMutableArray alloc]init];
NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init];  
library = [[ALAssetsLibrary alloc] init];

void (^assetEnumerator)( ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop)
{

if(result != nil)
{
    if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto])
    {
        [assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]];

        NSURL *url= (NSURL*) [[result defaultRepresentation]url];

        [library assetForURL:url
                 resultBlock:^(ALAsset *asset) {
                     [mutableArray addObject:asset];
                     if ([mutableArray count]==count)
                     {
                         self.galleryImages=[[NSMutableArray alloc] initWithArray:mutableArray];
                     }
                 }
                failureBlock:^(NSError *error){ NSLog(@"operation was not successfull!"); } ];
    }
}
};

NSMutableArray *assetGroups = [[NSMutableArray alloc] init];

void (^ assetGroupEnumerator) ( ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) {
    if(group != nil) {
        [group enumerateAssetsUsingBlock:assetEnumerator];
        [assetGroups addObject:group];
        count=[group numberOfAssets];
    }
};

assetGroups = [[NSMutableArray alloc] init];

[library enumerateGroupsWithTypes: ALAssetsGroupAll
                       usingBlock:assetGroupEnumerator
                     failureBlock:^(NSError *error) {NSLog(@"There is an error");}];
}

我什至不确定这是否是要使用的正确代码,因此我们将不胜感激。我已经通读了 ALAssetsLibrary 和 Core Image 文档,但仍然不知道该怎么做。

有什么建议吗?谢谢!

最佳答案

我完全不知道如何从图像中检测人脸。但是你可以阅读 this link并下载 OpenCV 来执行此操作

关于ios - 获取 iOS 照片库中所有照片的数组,其中包含面孔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19332173/

相关文章:

Objective-C 类别 : Can I add a property for a method not in my category?

ios - 'GADUNativeCustomTemplateAd' 错误没有可见的@interface

iphone - 在 iOS5 中从 CIImage 创建 UIImage 时遇到问题

iphone - UIImage 中的绘制区域无法正确识别

ios - 在iOS 5核心图像过滤器中显示从CIImage获得的UIImage

ios - 从 Core Audio Callback 更新 UI 的最佳实践是什么?

ios - 绘制透明圆弧

IOS Swift - 搜索广告 API requestAttributionDetails 只返回 Nil

ios - RLMArray 到 RLMLinkingObjects 迁移

iphone - 让 View 向上滑动以为键盘腾出空间?