2017-05-15 3 views
0

GPUImage를 사용하여 코너 감지를 구현하는 데 이상한 문제가 있습니다.GPUImage2 : HarrisCornerDetector가 콜백을 호출하지 않습니다.

브래드의 다운로드에서 필터 템플릿을 시작 지점으로 사용하려고하지만 이미지와 구석 점 (단일 흰색 픽셀)의 합성보기를 생성 할 수는 있지만 추가 할 때 십자선 생성기에서 콜백 함수가 호출되지 않습니다. 제 간략화 된 예에서

는, I는 출력보기 RenderView로 구성되고 카메라가 예상대로, 콜백 함수가 호출 바와 같이

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 

Camera? 정의, 그리고 I 출력 작은 흰 점들을 참조.

입력 1을 사용하도록 주석을 제거하고 입력 2를 주석 처리하면 디스플레이에만 카메라가 표시되고 모서리 탐지 콜백은 호출되지 않습니다.

Brad가 제공하는 샘플 프로젝트가 내 기기에서 작동하므로 하드웨어 또는 iOS 문제가 없음을 알고 있습니다!

의견이 있으십니까?

답변

0

당신은 입력하여 십자선 폭

crosshairGenerator.crosshairWidth = 15.0

깜빡하고

을 선언에는 한계가 없다
관련 문제