ios - 在 iOS 上使用带有 Metal 的 ARKit 时如何过滤掉模糊图像?
问题描述
我正在使用计算机视觉和 ARKit 来检测矩形并跟踪它们(如 Apple 在此处的示例:https ://developer.apple.com/documentation/arkit/tracking_and_altering_images )。我发现它有点不可靠,因为有时它开始尝试跟踪对象的失焦版本,当对象进入焦点时,ARReferenceImage 和实际图像不再匹配,因此跟踪变得非常不可靠。有没有一种快速的方法来忽略模糊的图像?我在网上搜索了一下,发现可以使用 OpenCV 来获取拉普拉斯算子的方差,但是,我很好奇我是如何使用 Swift 通过 GPU 加速的金属性能着色器来做到这一点的?
解决方案
事实证明,MPS 具有称为 MPSImageLaplacian 和 MPSImageStatisticsMeanAndVariance 的内置着色器,当它们结合使用时,可以可靠地用于检测模糊图像并忽略它们。我已经在 Swift on Medium 中记录了我是如何做到这一点的详细信息:https ://medium.com/@salqadri/blur-detection-via-metal-on-ios-16dd02cb1558
推荐阅读
- ios - 具有非常基本的 NavigationView 布局问题的 SwiftUI Xcode 12.5
- ruby-on-rails - 如何使用字符串插值访问 Rails 应用程序配置数据
- tailwind-css - 将实用程序类添加到正文标记
- python - 从 numpy 数组在 matplotlib 中实时绘图
- php - 登录后如何添加目的地?
- java - 为什么这个线程代码有时会打印错误的意外结果?
- docker - 适用于 Amazon Linux 2 AMI 的 ASP.NET Core 基础映像
- maven - Mule SDK Plugin 导致 java.lang.NoClassDefFoundError: org/json/JSONObject
- regex - 在 perl 中使用双重感叹匹配 cond
- javascript - 我正在使用 nodemailer,我需要向数组中的所有用户发送电子邮件?