找回密码
 加入
搜索
楼主: sanmoking

[图形处理] 精神病女子撕碎5万元人民币,假设编程对齐,大家各自发表思路。

 火... [复制链接]
发表于 2012-5-8 09:24:44 | 显示全部楼层
昨天还准备发这个话题来着. 我的思路:
先对一张完整的人民币分别进行正反面扫描,并对每一面设置1000个标 ...
afan 发表于 2012-5-7 20:41



    不用正反描了,因为只要识别了一面的图案和轮廓,反面的图案一定是确定的。
无非是识别的集合略大一点而已。
关键是得到程序的输入很不容易,输入输出耗费的成本将超过5万

评分

参与人数 1金钱 +22 贡献 +5 收起 理由
sanmoking + 22 + 5 欢迎探讨。

查看全部评分

发表于 2012-5-8 09:43:26 | 显示全部楼层
本帖最后由 afan 于 2012-5-8 09:45 编辑
不用正反描了,因为只要识别了一面的图案和轮廓,反面的图案一定是确定的。
无非是识别的集合略 ...
happytc 发表于 2012-5-8 09:24



    “先对一张完整的人民币分别进行正反面扫描”。这样,碎片只需扫描任意一面即可,不然你还得先识别正反面。

评分

参与人数 1金钱 +22 贡献 +1 收起 理由
sanmoking + 22 + 1 欢迎探讨。

查看全部评分

发表于 2012-5-8 10:02:24 | 显示全部楼层
回复 17# afan


    说个题外话,其实你发现没有,每张百元钱上的安全线位置是不一样的
 楼主| 发表于 2012-5-8 10:08:04 | 显示全部楼层
我是没有什么好的想法,不过看了各位高手们的思路,觉得afan的比较靠谱,现在这个题目如果往深处考虑,我觉得应该还是无解,
1、正反面的问题可以用标准图找图来处理,扫描的图案000N跟标准100的正反面对比,用找图法,在标准正面找到图案,就算正面000NA,同时生成一个相对的背面图案000NB,在标准背面图中找到图案同理,不过这个问题实际操作需要解决各种年份100面值的图案差异,每张rmb套印的误差,每张rmb新旧程度的误差,每张rmb随机污迹的干扰。
2、拼接图案,编号之后的碎片库分为正面和反面,只需要其中一个库就可以了,先是第一张作为目标,后边依次跟第一张尝试拼接,拼接上之后,在库中去除已拼接的编号,两个图片合并为目标,继续从库中从前往后开始尝试拼接,直到这张rmb拼接完成,换下一张继续。拼接这个工作其实可以半人工操作,500张很快就能完成,程序来完成就有点工作量太大。
3、综上所述,最重要的就是第一步把扫描的文件整理成库,这个数量是随机的,大量的,不可预知的,第二步拼接的部分就是完成工作而已,没有太大难度。
 楼主| 发表于 2012-5-8 10:11:10 | 显示全部楼层
回复  afan


    说个题外话,其实你发现没有,每张百元钱上的安全线位置是不一样的
happytc 发表于 2012-5-8 10:02



    那个其实是版本的问题,比如2000版和2005版什么的。。就是我楼上所说的【各种年份100面值的图案差异,每张rmb套印的误差,每张rmb新旧程度的误差,每张rmb随机污迹的干扰。】
 楼主| 发表于 2012-5-8 10:13:41 | 显示全部楼层
还有一个问题,电脑上拼好了,现实中也得拼好,银行才给兑,所以电脑上编了号,现实中也得编号,还得一致,成千上万的碎片编号存放,也是比较麻烦的。
发表于 2012-5-8 10:16:39 | 显示全部楼层
如果能对撕碎边缘的曲线制订一个标识方式的话(比如类似经纬度,参考国际日期变更线),再用程序来配对就太容易啦
1、提取出曲线转换成数值序列;
2、根据序列算出一个校验和进行初匹配,缩小配对范围;
3、在初匹配结果中进行精确匹配,设定容错值,最终实现正确匹配。
相对而言,制订这个标识方式及校验和算法是个难点

评分

参与人数 1金钱 +26 贡献 +5 收起 理由
sanmoking + 26 + 5 佩服,这个想法好。

查看全部评分

发表于 2012-5-8 10:17:38 | 显示全部楼层
回复 18# happytc


    我想,先去色(灰度化),模糊匹配、合适的相似度是必须的,毕竟目标和源不是出于一处。
另外,鉴于本案的特殊化(非碎纸机处理的,每个碎片几乎有唯一的外形),也可以从轮廓(或单位面积)考虑,那样就完全不必考虑图案。

评分

参与人数 1金钱 +24 贡献 +5 收起 理由
sanmoking + 24 + 5 轮廓是比较可行的。

查看全部评分

 楼主| 发表于 2012-5-8 10:32:12 | 显示全部楼层
百元大钞基本为红色的,可以在扫描的时候后衬反色背景,然后电脑进行轮廓读取,这个在验证码识别领域已经很熟练了,关键是角度问题轮廓拼接时的旋转角度问题。
发表于 2012-5-8 21:37:26 | 显示全部楼层
我也说说我的~~
取碎币正面或背面扫描图的轮廓(无视图形内容),建立坐标系统~~

因为左直角位固定,可取得500份起点,再从上至下匹配与起点右侧轮廓相符碎片,直至取出右直角碎片为止,输出坐标.

评分

参与人数 1金钱 +15 贡献 +12 收起 理由
sanmoking + 15 + 12 看着就像专业人士。

查看全部评分

发表于 2012-5-8 22:50:30 | 显示全部楼层
我也来凑凑热闹~~~
百元钞票撕成碎片,必然有些碎片其中一个边缘是直线,有些碎片中包含一个直角或者多个直角,
有些碎片则不包含直线也不包含直角,
那么我们把碎片分为两类,包含直线或直角的为一类,不包含直线或直角的为另一类,
先取包含直角的碎片出来,然后从库中提取包含直线边缘的碎片来对比,成功则从库中删除该碎片编号,失败则放回库中,然后继续从库中提取包含直线边缘的碎片,先拼出一个包围,最后再来拼接不包含直线边缘的碎片。
发表于 2012-5-9 08:52:08 | 显示全部楼层
假设扫描的时候只扫描正面,以100元的完整版作为查找模型校正扫描后的图片
完整版图片如下:

例如这是一张扫描出来的碎片

扫描出来的图片,多少都有点旋转,需要根据完整版对比校正。
当从完整版图片找到这个碎片经过旋转后的部分时候,停止旋转校正,然后将这个碎片的边界以左下角为原点的坐标(X,Y)写入这个碎片编号对应的库中,写入的时候就要区分好上边界,下边界,右边界。  例如 编号0001--1,2.......x,y
查找的时候,将含有完整版左下角的碎片用特殊编号区分出来  比如  1001-x1,y1......xn,yn

库创建结束后(也就是所有的碎片都经过了校正和边界写入库)
下面,将某个特殊碎片记为a, 其他碎片记为b
以任意一个a为基础,以a的左下角为原点,查找库中含有坐标为a的右边界坐标和上边界坐标的那个碎片,然后组成新的底图。
然后,再查找a的右边界的x+b的右边界的x ,b的右边界y组成的边界信息在库中对应的碎片,然后依次类推,指导底图宽高等于完整版的人民币的宽高。

将碎片编号及组合顺序输出即可。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-5-9 09:25:09 | 显示全部楼层
给我拼吧,我只要三分之一就好,哈哈
发表于 2012-5-9 09:29:28 | 显示全部楼层
这个居然可以用编程来完成!厉害!快联系一下银行,帮帮那个人吧!
发表于 2012-5-9 09:51:17 | 显示全部楼层
这个可以扫描的吗 那么强啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-18 18:23 , Processed in 0.074406 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表