[英]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.