GPUImage在另一个视图中显示直方图

时间:2015-04-25 20:50:18

标签: ios objective-c histogram gpuimage gpuimagestillcamera

我目前正在尝试使用GPUImage显示直方图。我目前有以下代码:

GPUImageOutput<GPUImageInput> *filter = [[GPUImageHistogramFilter alloc] initWithHistogramType:kGPUImageHistogramLuminance];
[self.stillCamera  removeTarget:filter];
GPUImageGammaFilter *gammaFilter = [[GPUImageGammaFilter alloc] init];
[self.stillCamera  addTarget:gammaFilter];
[gammaFilter addTarget:filter];

GPUImageHistogramGenerator *histogramGraph = [[GPUImageHistogramGenerator alloc] init];

[histogramGraph forceProcessingAtSize:CGSizeMake(500.0, 500)];
[filter addTarget:histogramGraph];

GPUImageAlphaBlendFilter *blendFilter = [[GPUImageAlphaBlendFilter alloc] init];
blendFilter.mix = 0.75;
[blendFilter forceProcessingAtSize:CGSizeMake(500, 500)];

[self.stillCamera addTarget:blendFilter];
[histogramGraph addTarget:blendFilter];

[blendFilter addTarget:previewView];

上面显示了在我的previewView上重叠的直方图。 (它确实闪烁,另一个问题,另一天)

我想在视图上特定位置的较小视图上显示此直方图。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

要在单独的视图中显示直方图,您需要在主视图中添加另一个unwrap并将直方图过滤器指向它。以下是基于GPUImageView示例的源代码。

SimpleImageFilter

最终结果:
enter image description here