我正在尝试使用 Brad Larson 的出色GPUImage
框架,并且正在努力处理由GPUImageHarrisCornerDetectionFilter
.
角作为一个数组返回GLFloat
-UnsafeMutablePointer
我想将它转换为一个数组CGPoint
我试过为内存分配空间
var cornerPointer = UnsafeMutablePointer<GLfloat>.alloc(Int(cornersDetected) * 2)
但数据似乎没有任何意义 - 无论是零还是 1E-32
我发现了如何在 Swift 中循环遍历 <UnsafeMutablePointer> 数组元素的完美答案并尝试了
filter.cornersDetectedBlock = {(cornerArray:UnsafeMutablePointer<GLfloat>, cornersDetected:UInt, frameTime:CMTime) in
crosshairGenerator.renderCrosshairsFromArray(cornerArray, count:cornersDetected, frameTime:frameTime)
for floatData in UnsafeBufferPointer(start: cornerArray, count: cornersDetected)
{
println("\(floatData)")
}
但编译器不喜欢UnsafeBufferPointer
- 所以我把它改成了UnsafeMutablePointer
,但它不喜欢参数列表。
我确信这很好而且很简单,而且听起来像是其他人必须要做的事情 - 那么解决方案是什么?