【发布时间】:2016-05-20 12:54:31
【问题描述】:
我正在尝试使用 Brad Larson 出色的 GPUImage 框架,并且正在努力处理 GPUImageHarrisCornerDetectionFilter 返回的cornerArray。
角在UnsafeMutablePointer 中以GLFloat 数组的形式返回 - 我想将其转换为CGPoint 数组
我已经尝试为内存分配空间
var cornerPointer = UnsafeMutablePointer<GLfloat>.alloc(Int(cornersDetected) * 2)
但数据似乎没有任何意义 - 无论是零还是 1E-32
我找到了看似完美的答案how to loop through elements of array of <UnsafeMutablePointer> in Swift 并尝试了
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,但它不喜欢参数列表。
我确信这很好而且很简单,而且听起来像是其他人必须必须做的事情 - 那么解决方案是什么?
【问题讨论】:
-
你看到
中的小写f了吗?错字可能是失败的原因。 -
一开始没有!但我做到了:-)
标签: ios swift gpuimage unsafe-pointers