GPUImageを使用してコーナー検出を実装する際に問題があります。GPUImage2:HarrisCornerDetectorがコールバックをコールしない
ブラッドのダウンロードのフィルタテンプレートを開始点として使用しようとしていますが、イメージとコーナーポイントの合成ビュー(単一の白いピクセル)を生成できますが、クロスヘアジェネレータでは、コールバック関数は呼び出されません。
私の簡略化した例では、Iは、出力ビューRenderView
として構成されており、ビデオカメラが定義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
示すように、コールバック関数が予想通りと呼ばれ、Iは出力に小さな白いドットが表示されます。
コメントを削除してINPUT 1を有効にし、INPUT 2をコメントアウトすると、ディスプレイにはカメラのみが表示され、コーナー検出のコールバックは決して呼び出されません。
Bradが提供するサンプルプロジェクトは私のデバイスで動作するので、ハードウェアやiOSの問題はないことを知っています。
どのような考えですか?