繁体   English   中英

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


    }

一定是我想念的简单东西,但我现在简直就是“那样的感觉”。 感谢您的理解。

更新:

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

当您遵循另一指南时,常识并不那么普遍。

我将保留问题,因为它可能会在将来在Swift中实现过滤器而对某人有所帮助。

变更:

filter.imageFromCurrentFramebuffer()

至:

blendFilter.imageFromCurrentFramebuffer() 

做到了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM