我有一个程序,需要拍摄7x10网格的iphone(或任何类型的相机)拍摄的照片,边缘周围有厚黑色边框。这个图像可以向右或向左旋转接收(不需要担心歪斜)。我已经有一个原始状态的网格图像,但是我需要获取我正在拍摄的图像并将其旋转到“完美/原始”状态。
创意1:表现不佳/不良结果
阈值我收到的图片和我已经拥有的完美网格图像。比较每个像素0轮,获得总分,然后保存。这样做会将增量图像旋转1到359.最低分是我们将图像恢复到原始状态所需的旋转。
理念2:仍不确定如何执行此操作
阈值我收到的图片和我已经拥有的完美网格图像。垂直和水平地在图片中心画一条线。根据垂直和水平线通过的黑色像素数查找旋转。这需要某种三角函数,我不会理解这一点。
有没有人有任何其他想法让这个工作?
非常感谢帮助我指明正确方向的任何帮助!
谢谢!
答案 0 :(得分:2)
而不是绘制一条水平线和一条垂直线,而是绘制两条水平线(比如每条水平线的三分之一)。只查看这些行的左半部分,并计算每个行的路径上有多少个黑色像素(a1
和a2
)。您还必须跟踪两条红线之间的距离,因此像素数d
。
使用上图中的这种表示法,您想要的角度是:
alpha=atan2((a2-a1),d)
并且alpha
的逆时针旋转将使图片的白色部分正确对齐。