【问题标题】:GPUImage average colour doesn't match to applied grayscale filterGPUImage 平均颜色与应用的灰度滤镜不匹配
【发布时间】:2015-02-11 08:25:29
【问题描述】:

我在使用 GPUImage 时遇到以下问题: 首先,我在相机上添加了一个灰度滤镜,然后我使用GPUImageAverageColor 来获得平均颜色。问题是我通过块得到的颜色不在灰度范围内。我做错了什么?

这是代码:

    GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
    videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;

    GPUImageView *filterView = (GPUImageView *)self.cameraLayer;
    [filterView setFillMode:kGPUImageFillModePreserveAspectRatioAndFill];

    GPUImageGrayscaleFilter *grayscaleFilter = [[GPUImageGrayscaleFilter alloc] init];
    [videoCamera addTarget:grayscaleFilter];
    [grayscaleFilter addTarget:filterView];

    GPUImageAverageColor *averageColor = [[GPUImageAverageColor alloc] init];
    [averageColor setColorAverageProcessingFinishedBlock:^(CGFloat redComponent, CGFloat greenComponent, CGFloat blueComponent, CGFloat alphaComponent, CMTime frameTime){

        NSLog(@"Red: %f, green: %f, blue: %f, alpha: %f", redComponent, greenComponent, blueComponent, alphaComponent);

    }];

    [videoCamera addTarget:averageColor];
    [videoCamera startCameraCapture];

【问题讨论】:

  • 尝试使用该摄像机进行定位-> averageColor-> grayscaleFilter-> filterView

标签: ios objective-c iphone gpuimage


【解决方案1】:

这是因为您实际上并未对灰度输出进行平均颜色运算。

看看您是如何定位过滤器的。您将摄像机的输出直接发送到您的平均颜色操作。您需要将灰度过滤器的输出发送到平均颜色操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    相关资源
    最近更新 更多