试试一个简单的文档扫描器(机器视觉)

用途:可以用在智能手机上的名片扫描归档或文档扫描保存。

设想:我们通过手机的摄像头拍到一张图片如下

我们的目的是自动获取小票的位置,然后自动整理成正视效果然后整理存起来,需要的效果可能如下

 

为了全部自动化于是我们有下边一些可能实现问题的想法和步骤:

1.首先读入图片灰度化。

2.为了寻找小票的位置我们可能想从边缘这块出发去寻找小票,为了避免噪音的影响,我们对图片进行高斯模糊然后再进行canny算查找边缘

可以看出,其实边缘检测效果不太好,具体教通用的参数自己可以去调,这里只做一个示例,当然边缘效果越好,效果就越准确。

3.做完边缘检测之后,接下要找到小票的话,需要寻找小票轮廓,利用边缘信息寻找轮廓于是有

可以看出,找到的轮廓多到吓死你,一般像我们这种应用都有个假设,假设我们是用来扫书籍或名片之类的,理论上他们是图片的焦点,相对来说轮廓都是比较大的。

4.得到原始众多轮廓之后我们就要想办法得到我们想要的轮廓了,我们对这些检测出来的轮廓的面积进行排序取头5-6个比较大的轮廓,然后计算这4-6个中每个轮廓近似的多边形,得到各自的顶点,然后判断哪些轮廓的顶点数量为4的就是我们想要的轮廓了,于是有下图;

5.这样子我们就得到小票的4个顶点的位置了,然后我们的目标是正视效果 ,于是新的对应顶点位置 是新图片的四个顶点,这样子通过这四个对应点对,我们就可以算出一个投影变换矩阵,然后对原图进行变换就可能得到我们想要的结果

 

然后 其实这种方法要做到非常鲁棒性,目前这些方法都无法达到要求的,其实可以产生四个顶点,允许用户交互,对准小票或文档相对于的四个顶点 然后进行第5步的变化相对于如下

 

好久没写博客了,先这样了、

 

posted @ 2015-09-02 00:16  风骚背包客  阅读(2172)  评论(18编辑  收藏  举报