【发布时间】:2013-11-29 17:06:19
【问题描述】:
第一次使用不同的 GPUImage 过滤器时,我看到了奇怪的性能,其中 GPUImage 在实时预览和输出的照片之间显示出相当大的差异。
我目前正在使用 GPUImageSobelEdgeDetectionFilter 遇到这种情况,如下所示;
左侧是设备屏幕的屏幕截图,右侧是输出的照片。它似乎显着降低了检测到的线条的粗细和清晰度,从而输出了非常不同的图片。
我尝试过开启和关闭 SmoothlyScaleOutput,但由于我目前没有缩放图像,这应该不会影响它。
过滤器是这样设置的;
filterforphoto = [[GPUImageSobelEdgeDetectionFilter alloc] init];
[(GPUImageSobelEdgeDetectionFilter *)filterforphoto setShouldSmoothlyScaleOutput:NO];
[stillCamera addTarget:filterforphoto];
[filterforphoto addTarget:primaryView];
[stillCamera startCameraCapture];
[(GPUImageSobelEdgeDetectionFilter *)filterforphoto setEdgeStrength:1.0];
照片就是这样拍的;
[stillCamera capturePhotoAsImageProcessedUpToFilter:filterforphoto withCompletionHandler:^(UIImage *processedImage, NSError *error){
有谁知道为什么 GPUImage 对实时相机的解释与输出的照片如此不同?仅仅是因为预览的质量比最终图像低得多,因此在全分辨率图像上看起来确实不同吗?
谢谢,
(p.s. 请忽略左右图像的尺寸略有不同,我没有把它们点亮,因为我本来可以做到的)
【问题讨论】:
标签: ios iphone camera gpuimage