ios - 如何从 GPUImageHarrisCornerDetector 获取角坐标?

标签 ios objective-c swift gpuimage

我想通过哈里斯角点检测器检测矩形及其角点。它包含一个带角的 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/

相关文章:

swift - 如何在 Swift 中查找本地网络上运行我的应用程序实例的设备的 IP 地址?

javascript - 在 iOS 上使用 Cordova 持久化数据

objective-c - Xcode 不断要求输入密码以使用系统钥匙串(keychain)

objective-c - Xcode 的隐藏功能

iphone - 蓝牙对等网络 API iOS

ios - 如何将 4 个 uibutton 居中,彼此之间的距离相等?

ios - Swift 创建 UIButton 和 UIView 颜色更改的通用扩展

ios - 相机预览未填满屏幕

ios - 使用 Swift 在 iOS 应用程序上播放 mp4 视频

ios - 旋转时如何中断/停止动画?