问题标签 [cidetector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 应用 CIFilter 时图像变得模糊
我正在使用 iOS 应用程序从相机中裁剪矩形图像。我正在使用 CIDetector 来获取矩形特征并使用 CIFilter 来裁剪矩形图像。但是在应用过滤器之后,结果图像质量变得很差。
下面是我的代码。
我从以下委托方法获取视频捕获输出
我在后台运行一个 NSTimer,它将开始从捕获的源图像中检测矩形特征,每 0.2 秒
发送到此方法后将检索最终图像
最终的图像质量有时会变得模糊。那是因为过滤器还是因为相机输出图像?请帮我解决这个问题。
ios - 由于图像方向,无法检测图像中的人脸
我想使用此代码通过 CIFaceDetector 检测图像中的人脸。
但是,这仅适用于横向。我不知道为什么它不适用于所有其他方向。我的意思是方向应该设置正确。我还将 UIImage 转换为 CIImage。
有问题吗?
ios - CIDetector 能否返回多个 CIDetectorTypeRectangle 类型的 CIFeature?
我还在Apple Dev Forum 上找到了这个问题。
一CIDetector
组 with是否CIDetectorTypeRectangle
可以返回多个矩形?
目前,此代码总是返回一个feature.count
or 0
,1
即使图片中充满了矩形。
ios - 检测文本方向
我可以使用CIDetector
(Using CIDetectorTypeText
) 在文本周围绘制矩形,但我找不到检测文本方向的方法。有谁知道如何使用 Swift 检测文本方向?
swift - CIDetectorTypeQRCode 给出错误
它在设备中运行良好,但是在为 iTunes 分发生成构建时会出现错误:
“'[String:AnyObject] 类型的值?” 没有成员“钥匙”
如果我删除选项部分
然后它给出如下错误:
(ofType: String, context: CIContext?, options: [String : AnyObject]?) -> CIDetector' 不能转换为 '(ofType: String, context: CIContext?, options: [String : AnyObject]?) -> CIDetector ?
有人对此有想法吗?
我正在使用 Swift 2.3 和 Xcode 8.1。
swift3 - CIDetectorError: '(String, CIContext?, [String: Any]?) -> CIDetector' 不能转换为 '(String, CIContext?, [String: Any]?) -> CIDetector?'
转换为 后Swift 3.0
,由于某种原因,我收到此错误
'(String, CIContext?, [String: Any]?) -> CIDetector' 不能转换为 '(String, CIContext?, [String: Any]?) -> CIDetector?'
我只在尝试存档时收到错误消息。当我跑步时,一切正常。
objective-c - 将检测到的矩形从纵向 CIImage 转换为横向 CIImage
我正在修改此处找到的代码。在代码中,我们使用 AVCaptureSession 从手机摄像头捕获视频,并使用 CIDetector 检测图像馈送中的矩形。提要有一个 640x842 的图像(iphone5 纵向)。然后我们在图像上进行叠加,以便用户可以看到检测到的矩形(实际上它大部分时间都是梯形)。
当用户按下 UI 上的按钮时,我们会从视频中捕获图像并在这个较大的图像 (3264x2448) 上重新运行矩形检测,您可以看到它是横向的。然后我们对检测到的矩形进行透视变换并裁剪图像。
这工作得很好,但我遇到的问题是 5 个中的 1 个捕获较大图像上检测到的矩形与从较小图像中检测到(并呈现给用户)的矩形不同。尽管我仅在检测到手机(相对)静止时才捕获,但最终图像并不代表用户期望的矩形。
为了解决这个问题,我的想法是使用最初捕获的矩形的坐标并将它们转换为捕获的静止图像上的矩形。这就是我挣扎的地方。
我用检测到的矩形尝试了这个:
所以给定一个检测到的矩形:
左上:88.213425、632.31329 右上:545.59302、632.15546 右下:575.57819、369.22321 左下:49.973862、369.40466
我现在有这个旋转的矩形:
原点 = (x = 369.223206, y = -575.578186) 尺寸 = (宽度 = 263.090088, 高度 = 525.604309)
如何将较小肖像图像中的旋转矩形坐标转换为 3264x2448 图像的坐标?
编辑 Duh .. 阅读我自己的方法后,我意识到用梯形创建一个矩形并不能解决我的问题!
支持代码检测矩形等...
这是如何获得静止图像的总结版本:
谢谢你。
ios - 为什么我使用 CIDetector 的人脸检测代码不能正常工作?
我试图在我的 iOS 相机应用程序中检测人脸,但它不能正常工作,而它在 Camera.app 中工作正常。请注意:
- 在我的应用程序中未检测到第一张脸,仅在 Camera.app 中。
- 对于第三张脸——东亚女性——Camera.app 正确地在她的脸周围绘制了一个矩形,而我的应用程序绘制了一个延伸到她脸下方的矩形。
- 在我的应用程序中没有检测到奥巴马的脸,只有在 Camera.app 中。
- 当相机从普京的脸上缩小时,我的应用程序会在他的右半边脸上绘制一个矩形,将其切成两半,而 Camera.app 会在他的脸上正确地绘制一个矩形。
为什么会这样?
我的代码如下。你看有什么不对吗?
首先,我创建一个视频输出如下:
这是代表:
facesUpdated() 回调如下:
我也尝试了以下方法,但它们没有帮助:
- 将 AVCaptureVideoDataOutput 的 videoSettings 设置为 nil。
- 将 CIDetector 的方向显式设置为纵向。手机在此测试中是纵向的,所以没关系。
- 设置和删除 CIDetectorTracking: true
- 设置和删除 CIDetectorAccuracy:CIDetectorAccuracyHigh
- 通过仅查看检测到的第一个特征来尝试仅跟踪一张脸。
- 将 CVImageBufferGetDisplaySize() 替换为 CVImageBufferGetEncodedSize() - 它们无论如何都是相同的,在 1440 x 1080。