我有一个通过字节矩阵(类似位图的矩阵)表示的图形。示例图显示在上Picture 1
。
目的是找到给定图形的最佳旋转角度。当图形旋转最佳角度时,与X和Y轴平行并刻有图形的矩形的面积最小。
刻有图形的矩形在图片上显示为浅灰色。在中Picture 2
,您可以看到图形的理想旋转方向为顺时针大约30度。
现在,我知道算法如何找到该角度,但是在我看来这是非常低效的。它是这样的:
- 循环从0到45度的角度。
- 对于当前角度,为每个图形点计算新的旋转位置
- 查找包含图形(最小和最大x,y)的矩形的边界,如果到目前为止最匹配,则对其进行注册
- 下一个角度
这是一种蛮力方法,对于小人物来说效果很好且相当快。但是,我需要处理包含多达1000万点的图形,并且算法变得缓慢。
什么是解决这个问题的好算法?