首先,我有一张空白的单据(就是发票之类的)
扫描后,获得了一张图像,将此图像在PS中处理,剔除多余的空白,校正角度。得到一张模板图,我称之为A.然后,我有一张打印好的单据(就是用打印机在先前的单据上打上字)
扫描后,获得一张图像B,因为扫描的时候放的位置、角度都很随便,所以我需要根据模板图A校正图B。
也就是说,我需要
1.确定图B在哪个位置上能和图A重合,
2.确定图B需要旋转多少角度才能与图A重合这是问题1: 使用何种算法?或者何种开发包能够让我获知图B的偏移量和旋转角度?当确定了图B中发票的位置后,会处理图B,校正后得到图C.
图C应该能够与图A(也就是模板)最大限度的重合。我需要剔除图C上所有与图A相同的像素,保留不同的部分,(也就是说,将图C中打印机打印的字提出出来)
这样就能得到最终的图D.
这是问题2: 如果剔除2张图片上相同的背景(我想逐像素处理这种方式不是很好,因为扫描出来的图像不可能完全一致),应该使用某种算法来剔除。不知有何算法可以?
扫描后,获得了一张图像,将此图像在PS中处理,剔除多余的空白,校正角度。得到一张模板图,我称之为A.然后,我有一张打印好的单据(就是用打印机在先前的单据上打上字)
扫描后,获得一张图像B,因为扫描的时候放的位置、角度都很随便,所以我需要根据模板图A校正图B。
也就是说,我需要
1.确定图B在哪个位置上能和图A重合,
2.确定图B需要旋转多少角度才能与图A重合这是问题1: 使用何种算法?或者何种开发包能够让我获知图B的偏移量和旋转角度?当确定了图B中发票的位置后,会处理图B,校正后得到图C.
图C应该能够与图A(也就是模板)最大限度的重合。我需要剔除图C上所有与图A相同的像素,保留不同的部分,(也就是说,将图C中打印机打印的字提出出来)
这样就能得到最终的图D.
这是问题2: 如果剔除2张图片上相同的背景(我想逐像素处理这种方式不是很好,因为扫描出来的图像不可能完全一致),应该使用某种算法来剔除。不知有何算法可以?
解决方案 »
- vc设计一对话框界面 如何通过读文件按钮把txt文件中的数据显示在对话框中的不同的静态编辑框中?跪求指点
- 问个有关msmq的问题
- 有没有办法不让"硬件向导"弹出来?
- 麻烦各位大哥帮我看下这个函数是什么意思 求详细解释英语有限 看文档很成问题
- 如何在辅助线程中安全的访问主线程控件?
- modeless无模式对话的正常退出问题?
- 非常简单的问题,有价值的一定送分!
- unsigned char *怎么转化为const VARIANT&
- 我用MFC类CFtpConnection做了对ftp服务器进行上传,下载功能(包括文件夹),现需要做断点续传功能,请问如何实现?
- BCG控件之间的嵌入问题
- 关于绘图笔形的问题
- 用DTW算法实现非特定人,孤立词语音识别的问题?
第一问题:看上面的这个连接。
效果图应该是这样的:算法呢其实就是解一个八元一次方程,你去搜索Perspective Correction就能找到的,或者搜索 扭斜校正
其实这个东西在OpenCV里面有一个函数就可以搞定——cvWarpPerspective
可以去查一些OpenCV的资料。当然你扫描的图像不会造成图示那么大的扭曲了 不过用这个校正应该能够满足你的要求了,其他什么镜头这类造成的扭曲 恐怕只能使用PhotoShop手动来
处理 用算法找不到合适的度啊。第二个问题,如果不用图像处理的方法那肯定是不能实现的。 你要从图像中剔除东西 不对图像每个像素都处理是不可能的 计算机毕竟不是人啊。所以还是要归结到图像处理上去 可以使用模板匹配。
对了上面那个cvWarpPerspective是输入四个原图(扭曲的)上的四个点,输入校正后图像(其实就是你的模板)的四个点,一一对应好了 会算出一个转换矩阵来给这个函数调用,然后一运算就出来校正好的图了。如果校正好了后 至少可以保证四个顶点是绝对一致的 你把模板的线条增宽一点(设定一个阈值) 然后进行图像运算(姑且叫做减法吧) 就可以从你的原图中得到文字了。
变化后的图跟模板有一定的大小差别是因为我没有调整 只是把它正过来 你如果准确的制定变换后跟模板一样大小 那变化后就是一般大小的。