我正在开发一个使用相机(特别是iPhone相机)“扫描”纸张的小项目。
工作流:
允许用户拍摄纸张照片,然后我将检测角落/轮廓,以便我知道照片中原始纸张的4个角点。然后很容易反转相机的透视变换,以获得拍摄的纸张的“平面”图像。
但是,我的问题是:如何维护甚至计算正确的(原始)宽高比?
如上所示,我有角点的坐标,我也知道如何构造矩阵以将左上角映射到点(0,0),右上角映射到(宽度,0) ,右下角为(宽度,高度),左下角为(0,高度)。
现在的问题是:如何获得纸张原有的正确宽度/高度宽高比。我很确定我可以用角度来确定透视变换,但我找不到合适的公式。我也有预感,我也需要相机的焦距,但是不需要它也很棒。
任何想法都会受到赞赏。
答案 0 :(得分:0)
本文 http://research.microsoft.com/en-us/um/people/zhang/papers/tr03-39.pdf
描述了这个过程。
我做了一些实验,虽然“合成”图像的结果很好,但是对于真实图像(或者当我在合成图像的'检测到的'角落添加了一些噪声时),结果是不稳定的 - 长宽比变化很大。