GPUImage 过滤器返回 nil

GPUImage Filter Returning nil

我一直在尝试将 GPUImageHoughTransformLineDetector 应用于 Swift 中的 UIImage,但它什么也没给我,现在几个小时我都不知道我要做什么做错了。

这是我的代码:

func lineDetection(image: UIImage)-> UIImage {

    let stillImage = GPUImagePicture(image: image)

    let filter = GPUImageHoughTransformLineDetector() 

    let lineGenerator = GPUImageLineGenerator()

    lineGenerator.forceProcessingAtSize(image.size)
    lineGenerator.setLineColorRed(1.0,green: 0.0, blue: 0.0)

 filter.linesDetectedBlock = { (lineArray:UnsafeMutablePointer<GLfloat>, linesDetected:UInt, frameTime:CMTime) in
            lineGenerator.renderLinesFromArray(lineArray, count:linesDetected, frameTime:frameTime)

        }

      stillImage.addTarget(filter)

     let blendFilter = GPUImageAlphaBlendFilter()
     blendFilter.forceProcessingAtSize(image.size)
     let gammaFilter = GPUImageGammaFilter()
     stillImage.addTarget(gammaFilter)
     gammaFilter.addTarget(blendFilter)

     lineGenerator.addTarget(blendFilter)

     blendFilter.useNextFrameForImageCapture()

     stillImage.processImage()

    return filter.imageFromCurrentFramebuffer() // returns always nil <<


    }

一定是我想念的简单东西,但我现在只是在 "that rut"。感谢理解。

更新:

果然很简单,看我的回答

当你跟随另一个指南时,常识就不那么普遍了。

我会留下这个问题,因为它可能会帮助将来在 Swift 中实施过滤器的人。

变化中:

filter.imageFromCurrentFramebuffer()

至:

blendFilter.imageFromCurrentFramebuffer() 

做到了。