2017-05-15 10 views
0

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の問題はないことを知っています。

どのような考えですか?

答えて

0

あなたが入力あなたの十字線幅

crosshairGenerator.crosshairWidth = 15.0

に忘れてしまった、あなたが

を宣言したしきい値はありません
関連する問題