ios - GPUImage2 : HarrisCornerDetector not calling callback

标签 ios swift gpuimage

我在使用 GPUImage 实现角点检测时遇到了一个奇怪的问题。

我尝试使用 Brad 下载的过滤器模板作为起点,但尽管我可以生成图像和角点(作为单个白色像素)的合成 View ,但当我尝试添加十字准线时生成器,回调函数永远不会被调用。

在我的简化示例中,我将输出 View 配置为 RenderView 并将 videoCamera 定义为 Camera?

    do {
        videoCamera = try Camera(sessionPreset:AVCaptureSessionPreset640x480, location:.backFacing)
        videoCamera!.runBenchmark = true
    } catch {
        videoCamera = nil
        print("Couldn't initialize camera with error: \(error)")
    }

    let filter = HarrisCornerDetector()

    let crosshairGenerator = CrosshairGenerator(size: Size(width: 480, height: 640))

    filter.cornersDetectedCallback = { corners in
        crosshairGenerator.renderCrosshairs(corners)
    }
    videoCamera! --> filter

    let blendFilter = AlphaBlend()
    videoCamera! --> blendFilter --> renderView
    //crosshairGenerator --> blendFilter    // INPUT 1: if I add this line, the callback never happens
    filter --> blendFilter                  // INPUT 2: with this input to blendFilter, the callback is good

如图所示,回调函数按预期被调用,并且我在输出中看到小白点。

如果我删除注释以启用 INPUT 1,并注释掉 INPUT 2,则显示屏仅显示相机,并且永远不会调用角点检测回调。

Brad 提供的示例项目可以在我的设备上运行,因此我知道不存在硬件或 iOS 问题!

有什么想法吗?

最佳答案

您忘记输入十字线宽度

crosshairGenerator.crosshairWidth = 15.0

并且您没有声明任何阈值

关于ios - GPUImage2 : HarrisCornerDetector not calling callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43980462/

相关文章:

iphone - 单击 UIButton 时如何重置所有 tableView 数据和数组?

ios - 如何用应用商店中的新版本替换 iOS 应用中预先填充的核心数据?

ios - 如何使 UICollectionView 宽度依赖于屏幕尺寸?

swift - 无法快速处理线程

objective-c - iOS 替换 html 实体

ios - 从黑色到完全透明的快速渐变

java - 带有 Glide 的 GPUImageView

image-processing - GPUImage:如何确定处理图像中给定矩形的平均像素值

ios - 根据所选字符串在 Collection View 中显示图像

ios - AVAssetWriter startWriting 状态为 3 时无法调用方法