如何推断图像旋转的角度?

时间:2010-11-27 09:32:36

标签: matlab image-processing

我有一个旋转到未知角度的图像,我没有原始图像。我如何用matlab命令确定旋转角度?

我需要用这个角度向后旋转图像才能到达原始图像。

2 个答案:

答案 0 :(得分:2)

正如@High Performance Mark在他的评论中提到的那样,当不清楚如何识别图像被旋转,或者什么会让你决定旋转被正确纠正时,很难给出答案。 / p>

换句话说,您首先必须找到一种方法来确定旋转角度,方法是根据特定功能分析图像,以告知您潜在的旋转。例如,如果你的图像包含一个面部,你就会进行面部检测(File Exchange上有足够的代码,然后旋转,使眼睛向上,嘴巴向下。如果你的图像包含线条在未旋转的图像中应该是垂直和/或水平的,您可以对图像应用Hough-transform并使用houghpeaks找到最可能的旋转角度。

最后,要旋转图片,您可以使用imrotate

答案 1 :(得分:1)

如果没有示例或更详细的描述,很难给出好的建议。但一般来说,这可以用于某些类型的图像。

例如,假设图像显示建筑物,柱子,家具或应具有垂直边缘的东西。运行边缘检测器,然后进行傅里叶变换。对于未旋转的图像,沿Y轴应该存在功率谱中的峰值或一些可见图案。功率谱的旋转方式与图像相同。如果您可以设计算法来查找指示垂直边缘的光谱特征,则可以测量其角度w.r.t.原点(零频率)。那是图像旋转的角度。

但您必须将该特定功能与功率谱中显示的所有其他图像功能区分开来。玩得开心 - 这是一种能够充分利用你的创造力和时间的细节。