iOS开发中,如何在黑色背景下比较准确地抠出人脸
PHP中文网
PHP中文网 2017-04-18 09:40:56
[iOS讨论组]

用户在黑色布的背景下拍摄照片(只有人脸部分),需要把人脸部分抠出来放在透明背景中用在别的地方。
我现在是用CubeMap实现,传的要消除的颜色的hsv范围是

CubeMap myCube = createCubeMap(0,41);

但是会把眉毛和嘴巴也抠去,大家还有别的实现思路吗???

代码如下

 //原图
UIImageView *myImageView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 100, 300, 300)];
myImageView.backgroundColor = [UIColor clearColor];
myImageView.image = [UIImage imageNamed:@"WechatIMG1.jpeg"];
[self.view addSubview:myImageView];

//创建透明背景图片
UIGraphicsBeginImageContextWithOptions(CGSizeMake(300, 300), NO, 0.0);
UIImage *blank = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

//背景图片
UIImage *backgroundImage = blank;

//要消除的颜色的hsv值范围
CubeMap myCube = createCubeMap(0,41);
NSData *myData = [[NSData alloc]initWithBytesNoCopy:myCube.data length:myCube.length freeWhenDone:true];

//消除过程
CIFilter *colorCubeFilter = [CIFilter filterWithName:@"CIColorCube"];
[colorCubeFilter setValue:[NSNumber numberWithFloat:myCube.dimension] forKey:@"inputCubeDimension"];
[colorCubeFilter setValue:myData forKey:@"inputCubeData"];
[colorCubeFilter setValue:[CIImage imageWithCGImage:myImageView.image.CGImage] forKey:kCIInputImageKey];

//消除后的图片
CIImage *outputImage = colorCubeFilter.outputImage;
CIFilter *sourceOverCompositingFilter = [CIFilter filterWithName:@"CISourceOverCompositing"];
[sourceOverCompositingFilter setValue:outputImage forKey:kCIInputImageKey];
[sourceOverCompositingFilter setValue:[CIImage imageWithCGImage:backgroundImage.CGImage] forKey:kCIInputBackgroundImageKey];

outputImage = sourceOverCompositingFilter.outputImage;


CGImage *cgImage = [[CIContext contextWithOptions: nil]createCGImage:outputImage fromRect:outputImage.extent];





//合成图
myImageView.image = [UIImage imageWithCGImage:cgImage];
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号