【发布时间】:2013-10-30 03:17:47
【问题描述】:
我有一张旋转到未知角度的图像,但我没有原始图像。如何使用 matlab 命令确定旋转角度?
我需要将图像旋转回这个角度才能到达原始图像。
【问题讨论】:
-
如果没有原始图像,当你找到它时,你将如何识别正确的未旋转?
-
顺便说一句,标签已被分解。 “图像处理”不是“图像”“处理”。
我有一张旋转到未知角度的图像,但我没有原始图像。如何使用 matlab 命令确定旋转角度?
我需要将图像旋转回这个角度才能到达原始图像。
【问题讨论】:
正如@High Performance Mark 在他的评论中提到的那样,当您不清楚如何识别图像已旋转,或者您无法确定旋转已正确纠正时,很难给出答案。
换句话说,您首先必须找到一种方法来确定旋转角度,方法是分析图像中的特定特征,告知您可能的旋转。例如,如果您的图像包含人脸,您将进行人脸检测(File Exchange 上有大量代码,然后旋转以使眼睛朝上,嘴巴朝下。如果您的图像包含应该在未旋转的图像中是垂直和/或水平的,您可以将Hough-transform 应用于您的图像并使用houghpeaks 找到最可能的旋转角度。
最后,要旋转图像,您可以使用imrotate。
【讨论】:
没有示例或更详细的描述,很难给出好的建议。但一般来说,这可以用于某些类型的图像。
例如,假设图像显示建筑物、电线杆、家具或应该有垂直边缘的东西。运行边缘检测器,然后进行傅里叶变换。对于未旋转的图像,沿 Y 轴应该有峰值或功率谱中的一些可见图案。功率谱的旋转方式与图像相同。如果您可以设计一种算法来查找指示垂直边缘的光谱特征,则可以测量其角度 w.r.t。原点(零频率)。那就是图像旋转的角度。
但您必须将该特定特征与功率谱中显示的所有其他图像特征区分开来。玩得开心——这种细节会占用你大部分的创造力和时间。
【讨论】: