1

我有一个程序需要拍摄由 7x10 网格的 iphone(或任何一种像样的相机)拍摄的照片,边缘有厚厚的黑色边框。该图像可以向右或向左旋转接收(无需担心歪斜)。我已经有了原始状态的网格图像,但是我需要获取正在拍摄的图片并将其旋转到“完美/原始”状态。

想法 1:性能狂/糟糕的结果

阈值我收到的图片和我已经拥有的完美网格图像。比较每个像素0旋转,得到总分,保存。这样做将增量图像旋转 1 到 359。最低分数是我们需要将图片恢复到其原始状态的旋转。

想法2:仍然不确定如何去做

阈值我收到的图片和我已经拥有的完美网格图像。画一条线垂直和水平穿过图片的中心。根据垂直和水平线穿过的黑色像素数找到旋转。这将需要某种我不太理解的三角学。

有没有人有任何其他的想法让这个工作?

任何帮助我指出正确的方向将不胜感激!

谢谢!

4

1 回答 1

2

不要画一条水平线和一条垂直线,而是画两条水平线(比如,每条线都在图片的三分之一处)。只看这些线的左半部分,计算每条 (a1a2) 的路径上有多少黑色像素。您还必须跟踪两条红线之间的距离,即像素数d

问题图,据我了解

使用上图中的这个符号,您想要的角度是:

alpha=atan2((a2-a1),d)

逆时针旋转alpha将使图片的白色部分正确对齐。

于 2012-05-23T22:08:59.460 回答