Я использую компьютерное зрение и ARKit для обнаружения прямоугольников и их отслеживания (как в примере Apple здесь: https : //developer.apple.com/documentation/arkit/tracking_and_altering_images). Однако я обнаружил, что это немного ненадежно, так как иногда он начинает пытаться отслеживать версию объекта вне фокуса, и когда объект попадает в фокус, ARReferenceImage и фактическое изображение больше не совпадают, и поэтому отслеживание становится очень ненадежным. Есть ли быстрый способ игнорировать размытые изображения? Я погуглил в Интернете и обнаружил, что можно использовать OpenCV для получения дисперсии лапласиана, однако мне любопытно, как я это делаю с помощью GPU-ускоренных шейдеров Metal Performance с использованием Swift?
1 ответ
Оказывается, MPS имеет встроенные шейдеры, называемые MPSImageLaplacian и MPSImageStatisticsMeanAndVariance, которые в сочетании могут надежно использоваться для обнаружения размытых изображений и их игнорирования. Я подробно описал, как я это сделал в Swift на Medium: https://medium.com/@salqadri/blur-detection-via-metal-on-ios-16dd02cb1558
Похожие вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.