zoukankan      html  css  js  c++  java
  • GPUImage的使用

      最近在做一个3D模型换脸功能,用户用手机自拍,然后将3D人物模型的脸换成自己的。

      在这过程中,android端可以用美图秀秀的美颜库去美白,但是ios端就没有类似的东东,百度一下,会发现在github上有一个叫BeautifyFaceDemo的开源项目,可以实现实时美颜相机,可想而知实现美颜一张照片肯定没问题。然后开始研究,最后用上之后,效果还可以。

      下面记录一下调用过程:

      Step 1,从https://github.com/BradLarson/GPUImage下载GPUImage工程,从https://github.com/Guikunzhi/BeautifyFaceDemo下载BeautifyFaceDemo工程

      Step 2,新建Single View Application工程TestBeautifyFace,

          将GPUImage工程文件夹中的framework文件夹拖到TestBeautifyFace工程文件夹,

          在新工程中新建Framework文件夹,将GPUImage.xcodeproj文件拖拽添加到xcode Framework文件夹中,

          然后添加依赖:在Build Phases-Link Binary With Libraries中点+添加下面的framework:

                  CoreMedia,CoreVideo,OpenGLES,AVFoundation,QuartzCore,最后将libGPUImage.a文件也加进来,不然链接时会报错……

          在Build Settings的Header Search Paths项中配置头文件搜索路径,将包含GPUImage的framework路径添加进来,我的是放在TestBeautifyFace工程文件同一级,所以是:framework/**  (**表示包含目录及所有子目录)

      Step 3, 使用GPUImage:

           为了节约时间,直接上老外的代码^_^:

     1 GPUImageFilter *selectedFilter;
     2      
     3     switch (buttonIndex) {
     4         case 0:
     5             selectedFilter = [[GPUImageGrayscaleFilter alloc] init];
     6             break;
     7         case 1:
     8             selectedFilter = [[GPUImageSepiaFilter alloc] init];
     9             break;
    10         case 2:
    11             selectedFilter = [[GPUImageSketchFilter alloc] init];
    12             break;
    13         case 3:
    14             selectedFilter = [[GPUImagePixellateFilter alloc] init];
    15             break;
    16         case 4:
    17             selectedFilter = [[GPUImageColorInvertFilter alloc] init];
    18             break;
    19         case 5:
    20             selectedFilter = [[GPUImageToonFilter alloc] init];
    21             break;
    22         case 6:
    23             selectedFilter = [[GPUImagePinchDistortionFilter alloc] init];
    24             break;
    25         case 7:
    26             selectedFilter = [[GPUImageFilter alloc] init];
    27             break;
    28         default:
    29             break;
    30     }
    31      
    32     UIImage *filteredImage = [selectedFilter imageByFilteringImage:originalImage];
    33     [self.selectedImageView setImage:filteredImage];
    View Code

      Step 4,使用美颜滤镜美颜一张照片:

          

    1     GPUImageBeautifyFilter *beautifyFilter = [[GPUImageBeautifyFilter alloc] init];
    2     UIImage *filteredImage = [beautifyFilter imageByFilteringImage:selectedImage];
    3     [self.selectedImageView setImage:filteredImage];
    View Code

      先写到这里,继续研究GPUImage~

      参考:http://code.tutsplus.com/tutorials/build-a-photo-app-with-gpuimage--mobile-12223

  • 相关阅读:
    hdu6229 Wandering Robots 2017沈阳区域赛M题 思维加map
    hdu6223 Infinite Fraction Path 2017沈阳区域赛G题 bfs加剪枝(好题)
    hdu6438 Buy and Resell 买卖物品 ccpc网络赛 贪心
    hdu6441 Find Integer 求勾股数 费马大定理
    bzoj 1176 Mokia
    luogu 3415 祭坛
    bzoj 1010 玩具装箱
    bzoj 3312 No Change
    luogu 3383【模板】线性筛素数
    bzoj 1067 降雨量
  • 原文地址:https://www.cnblogs.com/luleigreat/p/5740296.html
Copyright © 2011-2022 走看看