http://cd.qq.com/a/20120506/000011.htm
這個新聞中提到的5萬元的鈔票被撕碎,要想重新拼接起來,方法很多,但難度都比較大。
下面是我想到的一種。各位程序員大蝦看可行否。
第一步 取樣,把碎片記錄成一張張的圖片。
1. 在一張純色的桌子上鋪滿碎片,碎片不能重疊。用相機拍照。
2. 把照片的背景去掉,導出為一張張的小圖片,圖片名字為該碎片在照片里的坐標點。
第二步 圖像識別
1. 識別出每張圖片在錢幣中的位置,標記周圍一圈的坐標。(這一塊還沒有找到處理方式的細節,不過理論上肯定是可以的)
2. 把碎片坐標編號,和 周圍一圈的坐標,存入數據庫。
第三步 邊緣識別
1. 取出一個碎片的數據,找到周圍坐標中的一個點。
2. 從其他周圍坐標數據中找相同的點,找到后,再次找這兩個碎片中其他相同的坐標點,大於5個相同點的為可以拼接的兩個碎片。(幾個點根據坐標的精確度和實際情況確定)
3. 把這些相同點,存入另外一張表中,標記出坐標點,該坐標點是那兩塊碎片的。
4. 每次識別的目的就是找到一張可以拼接的紙幣,當所有的重合點都找到以后(除了紙幣本身周圍的點)。認為一個紙幣拼接完成。
5. 把識別完成一張的所有的重合點找到,第3步中記錄的點。在一個坐標中畫出所有的點,並標記出重合線是由哪兩塊碎片組成。
第四步 人工組合
1. 為了人工組合,需要准備的有:上一步得到的重合點組成的拼接圖;每張碎片在最初照片中的位置坐標;
2. 由碎片的坐標位置,把組成一張人民幣的所有碎片找到,按照拼接圖拼接。重合線上會提示是哪兩塊碎片的線,方便拼接。
3. 找那種比較寬的透明膠帶,粘在拼接好的紙幣上。
重復第三步和第四步。可以找到一張張的人民幣。