ios - GPUImage 过滤器返回 nil

标签 ios swift image-processing gpuimage

我一直在尝试将 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() 

做到了。

关于ios - GPUImage 过滤器返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34900484/

相关文章:

arrays - 在 Swift 2.2 中附加数组时使用 'subscript' 不明确

ios - UIView的阴影路径颜色不变

image-processing - 查找到 LED 的距离

ios - 我用3D touch在UITableViewl中按下了一个cell,然后提示错误的cell view

iphone - iOS 应用商店审查中的分析软件用户内容(应用被拒绝)

swift - Realm - 从 child 的角度获取所有 child 的所有 parent 的列表

android - 是否可以在android中使用Tesseract检测图像中的文本

c++ - OpenCV - C++ 中 Mat 对象的平均值

objective-c - UITabBarController 可以是 segue.destinationViewController 吗?

iphone - Objective-C : Adaptive Toolbar