iOS Swift 检测图像旋转

Posted

技术标签:

【中文标题】iOS Swift 检测图像旋转【英文标题】:iOS Swift Detecting Image Rotation 【发布时间】:2017-02-10 17:56:45 【问题描述】:

我有一个应用程序,只要用户在屏幕上按下,它就会为仪表上的针设置动画。当手指抬起时,我需要知道针的旋转角度。手指一抬起,我就删除了所有动画,但我不知道如何获得针的当前旋转角度。

【问题讨论】:

【参考方案1】:

这很简单,这是完整的解决方案:

示例设置:

imageView.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 6) // just to test (it is 30 in degrees and 0.523598775598299 in radians)

代码:

let rad: Double = atan2( Double(imageView.transform.b), Double(imageView.transform.a))
let deg: CGFloat = CGFloat(rad) * (CGFloat(180) / CGFloat.pi )
print(deg) // works, printing 30

deg = degreesrad = radians 的位置

解释: 第一行是获取弧度,第二行是用弧度乘以弧度,得到度数。


注意事项:

    CGAffineTransform(rotationAngle: someValue)中,someValue其实就是角度的弧度,不是用度数来衡量的。更多信息:

    radian

    degree

    PI

    CGFloat.pi 的弧度值是 180,因此您可以根据此测试任何角度。


如果这有帮助,请告诉我!

【讨论】:

太完美了!我确实需要学习一些高等数学。

以上是关于iOS Swift 检测图像旋转的主要内容,如果未能解决你的问题,请参考以下文章

MLKit 旋转面部图像使其笔直(iOS 和 Android)

如何使用 OpenCV 从图像中检测旋转对象?

旋转 90 度更改图像大小和裁剪 - Swift 3

Swift 3 - 旋转图像在 ImageView 中无法正确显示

如何检测将显微镜图像旋转对齐到模板的良好特征

使用opencv将旋转和倾斜的图像插入另一个图像中检测到的矩形?