我想通过哈里斯角点检测器检测矩形及其角点。它包含一个带角的 block :
filter.cornersDetectedBlock = { (cornerArray:UnsafeMutablePointer<GLfloat>, cornersDetected:UInt, frameTime:CMTime) in
问题是,cornerArray 是 GLfloat 类型,它返回一个介于 0 和 1 之间的值。我不知道如何使用 x 和 y 值创建类似 CGPoint 的东西。有什么想法可以实现这一点吗?
谢谢!
最佳答案
我不知 Prop 体细节,但一般来说你必须进行插值。
我假设您返回的 x 和 y 的值都在 0 到 1 之间,其中 0 是左/下边缘,1 是右/上边缘?
您只需要布置一个比例,然后从一个坐标系转换到另一个坐标系。
0...1000 是为了 0...1
.5 x
---- = ----
1 1000
x * 1 = 0.5 * 1000
x = 0.5 * 1000 / 1
x = 500
因此,如果您得到一个值 0.5,它将介于 0 和 1000 之间。(1000-0) * 0.5。如果您的像素矩形的原点为 0,0,您只需将 0..1 x 值乘以宽度,将 0..1 y 值乘以像素高度。如果像素原点不为 0,则需要添加原点。
关于ios - 如何从 GPUImageHarrisCornerDetector 获取角坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30196746/