证件图像校正

引子:

你是否遇到过这种情况:用手机对着身份证拍张照片,然后想打印出扫描件的效果?应用商城里有个热门app好像叫“扫描全能王”,大概提供了这个功能,但是它是收费的,普通用户用起来有些许不便。最近我也遇到了这个问题,别人用手机拍了个身份证照片传给我,如上面所示,让我把它打印出来:我最先想用PS,但是我发现无法用一个规则的矩形把它框得很好,我那没入门的PS技术无法解决这个问题,于是我就花了一晚上时间写了个程序,矫正结果如上面所示。本文将和大家分享一下我的代码。

一、矫正原理

根据宝典"Multiple View Geometry in Computer Vision",同一个相机从不同角度对一个平面成像,两个时刻成的像之间存在一个单应,也叫射影变换(3x3矩阵)。身份证表面是一个平面,现在的问题就是给定一个任意角度下拍摄的身份证照片,如何把它矫正成一个俯视视角下的照片,核心就是求解一个单应H。

\begin{bmatrix}\bar x \\ \bar y \\ 1 \end{bmatrix} =H \begin{bmatrix}x \\ y \\ 1 \end{bmatrix}

单应是一个3阶矩阵,9个参数,8个自由度,求解单应需要8个线性方程,一对对应点(x,y)和(\bar x, \bar y)可以构造2个线性方程,所以求解单应至少需要4对对应点。

如上图所示,我们依次选取身份证照片的左下角、左上角、右上角、右下角,然后将这四个位置坐标映射到一个标准矩形的四个顶点上,即可求出单应。在程序中,基于opencv的highgui实现了交互式从图像中选点ÿ

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值