首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GPUImageGaussianBlurFilter似乎不适用于分层过滤器

GPUImageGaussianBlurFilter似乎不适用于分层过滤器
EN

Stack Overflow用户
提问于 2014-05-07 18:23:59
回答 1查看 710关注 0票数 0

我有分层滤波器,所有看上去都很好的图像,我正在使用,但如果我改变高斯模糊参数,要么更高,要么更低,没有明显的差异,在模糊效果。我做错什么了?

这是我的代码:

代码语言:javascript
复制
GPUImageView *finalView;

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImage *topLayer = [UIImage imageNamed:@"Glass.png"];
    UIImage *baseLayer = [UIImage imageNamed:@"BasePhoto.png"];

    GPUImagePicture *stillImageSourceTop = [[GPUImagePicture alloc] initWithImage:topLayer];
    GPUImagePicture *stillImageSourceBottom = [[GPUImagePicture alloc] initWithImage:baseLayer];

    GPUImageScreenBlendFilter *screenBlendFilter = [[GPUImageScreenBlendFilter alloc] init];
    GPUImageBrightnessFilter *brightnessFilter = [[GPUImageBrightnessFilter alloc] init];
    GPUImageContrastFilter *contrastFilter = [[GPUImageContrastFilter alloc] init];
    GPUImageSaturationFilter *saturationFilter = [[GPUImageSaturationFilter alloc] init];
    GPUImageColorMatrixFilter *colorMatrixFilter = [[GPUImageColorMatrixFilter alloc] init];
    GPUImageOpacityFilter *opacityFilter = [[GPUImageOpacityFilter alloc] init];
    opacityFilter.opacity = 0;

    GPUImageGaussianBlurFilter *blurFilter = [[GPUImageGaussianBlurFilter alloc]init];
    blurFilter.texelSpacingMultiplier = 4.0;
    blurFilter.blurRadiusInPixels = 200.0;
    blurFilter.blurPasses = 4;


    [stillImageSourceTop addTarget:brightnessFilter];
    [brightnessFilter addTarget:contrastFilter];
    [contrastFilter addTarget:saturationFilter];
    [saturationFilter addTarget:colorMatrixFilter];
    [colorMatrixFilter addTarget:blurFilter];
    [blurFilter addTarget:opacityFilter];

    [stillImageSourceTop processImage]; 
    [opacityFilter useNextFrameForImageCapture];

    UIImage *topLayerImage = [opacityFilter imageFromCurrentFramebuffer];
    GPUImagePicture *stillImageSourceTopWithFilters = [[GPUImagePicture alloc] initWithImage:topLayerImage];

    [stillImageSourceBottom addTarget:screenBlendFilter];
    [stillImageSourceTopWithFilters addTarget:screenBlendFilter];
    [screenBlendFilter useNextFrameForImageCapture];

    [stillImageSourceBottom processImage];

    UIImage *mergedlayeredimage = [screenBlendFilter imageFromCurrentFramebuffer];
   [finalImageView setImage:mergedlayeredimage];

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-07 23:30:58

嗯,这是因为上面提到的大多数过滤器实际上什么都不做。您所连接的唯一过滤器是screenBlendFilter,在这里,您可以将源图像放入其中,然后从其中提取一个图像。你从来没有实际使用模糊在那里的任何东西,所以它当然不会影响输出任何。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23525422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档