问题标签 [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.

0 投票
1 回答
366 浏览

ios - CIDetctor 始终为零,无法读取 QRCode

我无法初始化 CIDetector 以读取 QRCOde ,它始终保持为零。这是我的代码:

如果我用它替换CIDetectorTypeQRCodeCIDetectorTypeRectangle会被初始化但我需要阅读 QRCode

我从前两天开始尝试,请帮助

0 投票
0 回答
301 浏览

ios - 如何使用 CIDetector 和 CIFaceFeature 处理大图像和不同的纵横比

我已经为此工作了好几天,如果图像大小与 UIImageView 相同,那么所有示例都是如此。此外,Stack 上的很多答案都已过时。

我有一个应用程序,用户可以在其中添加图像,该图像可以是任意大小和不同的纵横比,例如 750X750、1280X920。UIImageView 当然更小,内容模式设置为 Aspect Fill。我做了很多测试,所以这就是我到目前为止所做的:

  1. 我使用仿射变换将 CoreImage 坐标转换为 UIKit

  2. 我从具有图像宽度/ UIImageView 宽度的大图像中获取缩放比例以按比例缩小。

现在我假设以上两种方法都可以工作,如果图像是 UIImageView 的精确纵横比,但由于使用 Aspect Fill 可能会更大,宽度可能会超出范围,因此 Face Rect 将不正确比例因子是 UIImageView 宽度。

提前谢谢你的帮助。

0 投票
2 回答
5379 浏览

ios - 如何使用 CIDetector 和 Swift 在图像中裁剪检测到的矩形

我正在开发一个检测身份证的应用程序,我正在尝试使用 ios 内置的 CIDetector 来检测实时预览中的矩形对象。我在这里使用本教程中解释的解决方案 CoreImage Detectors

我得到了流动的结果 图像

我的问题:有没有办法提取和裁剪检测到的矩形?

0 投票
1 回答
1819 浏览

ios - 如何更改 CIDetector 方向?

所以我正在尝试CIDetector在 Swift 中使用文本检测器。当我将手机指向一段文字时,它没有检测到它。但是,如果我将手机转到一边,它就会工作并检测到文本。如何更改它以使其在正确的相机方向上检测到文本?这是我的代码:

准备文本检测器功能:

文字检测功能:

它在像左侧一样定向时起作用,但不适用于右侧:

在此处输入图像描述

0 投票
1 回答
653 浏览

swift - CIDetector 是否适用于其他条码类型

我正在查看 CIDetectorTypeQRCode。如何检测其他类型的条码?我可以通过 AVMetadataObjectType 读取其他条形码类型,但是我想对 CIDetector 做同样的事情。我正在尝试实现条形码的实时突出显示。

在我的 AVCaptureMetadataOutputObjectsDelegate 实现完全锁定和读取代码之前尝试一种放大效果。

0 投票
0 回答
1456 浏览

swift - 在检测到的矩形上添加图像

我正在使用 aCIDetector来检测我想用矩形图像替换的矩形。

检测工作正常,我可以在它上面画一个叠加层,知道如何使图像适合并贴合所有角落吗?

这是代码:

如果我只是用图像替换叠加层,图像会显示得非常小并且只粘在一个特定的角落并且不会填充矩形。

更新:

使用 Simons 项目给了我想要的结果,虽然一段时间后帧速率下降到低于 1 fps,但我不知道是什么导致这可能是我的实现?

0 投票
0 回答
445 浏览

ios - CIDetector RectOfInterest

我需要做的是制作一个扫描仪来扫描文件。目前我正在使用CIDetector类型检测任何矩形CIDetectorTypeRectangle

它工作正常并检测带有边缘的矩形。

现在我已经制作了一个带有四个角的扫描仪视图覆盖,这样如果文档位于这些覆盖框架内,那么只有扫描仪会检测到该文档。视频链接

AVCaptureMetadataOutput有一个rectOfInterest做同样事情的属性,但不幸的是它不能用于文档扫描。

0 投票
0 回答
1180 浏览

ios - iOS 为 CIDetector 获得正确的 CMSampleBuffer 方向

我正在阅读来自用户相机胶卷的一堆视频,每个视频都是一个CMSampleBuffers 列表,我想在每一帧上执行人脸检测。

我的检测方法如下:

首先,我确保缓冲区有效。然后我将缓冲区转换为 aCIImage最后,用于CIDetector运行人脸检测。

由于我正在从相机胶卷中读取这些视频,因此方向可能会根据视频的录制方式而发生很大变化。而且因为想要最好的检测结果,所以必须通过CIDetectorImageOrientation.

我目前有这个扩展:

但是,如果我将缓冲区转换为 aUIImage并将该图像方向传递给检测器,则在应该有人脸的地方不会检测到人脸。此外,当我将样本缓冲区转换为图像时,无论视频如何,方向总是相同的。这让我觉得视频方向没有得到保留?

如何获得适当的方向值以便人脸检测起作用?

0 投票
1 回答
1322 浏览

ios - 如何使用 CAShapeLayer 和 UIBezeirPath 在实时摄像机源上绘制检测到的矩形路径

我正在开发一个应用程序来检测实时摄像机源中的矩形并突出显示检测到的矩形。我使用AVFoundation并使用了以下方法进行了相机操作,以检测和突出显示检测到的矩形。

我用CAShapeLayerandUIBezierPath来绘制矩形。这是非常非常缓慢的。几分钟后路径变得可见。

有人可以帮我弄清楚为什么它很慢,或者让我知道我在这里做错了什么。任何帮助将不胜感激。

或者,如果有比这更简单的方法,我也想知道。

0 投票
2 回答
3885 浏览

ios - 用 UIBezierPath 表示 CIRectangleFeature - Swift

目前我正在使用 CIDetector 来检测 UIImage 中的矩形。我正在按照建议的方式将坐标传递给过滤器以取回 CIImage 以覆盖获取的 UIImage。它看起来像这样:

调用 performRectangleDetection 通过 CIImage 显示检测到的矩形。

它看起来像上面的图片。我需要使用设置为笔划的 UIBezierPath 来显示这个相同的红色矩形。我需要这个,以便用户可以调整检测,以防它不是 100% 准确。我试图画一条路,但没有成功。这是我绘制路径的方式。我使用一个名为 rect 的自定义类来保存 4 个点。这是检测:

接下来,我必须缩放坐标。这是 Rect 类中执行此操作的函数:

最后我画了路径:

路径已脱离屏幕且不准确。我知道我必须将坐标从 CoreImage 坐标调整为 UIKit 坐标,然后为 UIImageView 缩放它们。不幸的是,我不知道如何正确地做到这一点。我知道我可以重用我的一些检测代码来完成此任务,但我不知道要采取的正确步骤。任何帮助,将不胜感激!谢谢。这是正在发生的事情的一个例子:

更新

为了测试我在 scaleRect() 中执行的缩放,我决定让我的 ImageView 大小与我的图像大小相同。然后我打印了缩放前后的坐标。我认为因为它们是相同的,所以我的缩放是正确的。这是代码:

这是输出:

(742.386596679688, 927.240844726562)

(1514.93835449219, 994.811096191406)

(1514.29675292969, 155.2802734375)

(741.837524414062, 208.55403137207)


(742.386596679688, 927.240844726562)

(1514.93835449219, 994.811096191406)

(1514.29675292969, 155.2802734375)

(741.837524414062, 208.55403137207)

更新

为了尝试和缩放我的坐标,我又尝试了两件事。

数字 1:我尝试使用 UIView convertPoint 函数将点从图像转换为 UIImageView。这是我的编码方式:我将 scaleRect() 函数替换为

然后我用这些点返回了一个新的矩形。

数字 2:我尝试根据图像和 imageView 的宽度和高度差异对坐标进行简单的转换。继承人的代码:

更新 我也尝试过使用 CGAffineTransform。代码:

没有一个工作。我不知道我还能尝试什么。请帮忙。这将不胜感激。谢谢!