GPUImage过滤器返回nil

时间:2016-01-20 12:46:24

标签: ios swift image-processing gpuimage

我一直在尝试将GPUImageHoughTransformLineDetector应用到Swift中的UIImage,但它没有给我任何东西,现在几个小时我无法弄清楚我做错了什么。< / p>

继承我的代码:

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 <<


    }

一定是我想念的简单的东西,但我现在只是在“那个车辙”。谢谢你的理解。

更新

果然很简单,请参阅我的回答

当你跟随另一个指南时,常识并不常见。

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

1 个答案:

答案 0 :(得分:1)

改变:

filter.imageFromCurrentFramebuffer()

为:

blendFilter.imageFromCurrentFramebuffer() 

做到了。