Впервые при использовании другого фильтра 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. Пожалуйста, не обращайте внимания на немного разные размеры на левом и правом изображениях, я не совсем осветил их так, как мог бы)