先說答案:
現代碎紙機不行,但如果碎片簡單那麽可能可以。
這就不得不提起2013年的全國數學建模競賽中的B題——碎紙復原。
問題有各種難度,大致來說有:縱切、橫縱切、雙面橫縱切。
1、縱切
縱切的最簡單,大概是這樣:
基本上利用像素歐氏距離和一些簡單的貪心演算法進行匹配即可。
2、橫縱切
橫縱切開始因為碎片太多,組合太多。需要利用一些聚類演算法進行分類,一般可以利用行特征、邊緣特征、像素分布特征、間距特征。
這裏稍微復雜一點,而且開始需要進行一些人工校驗判誤,就像這樣。
演算法將疑似的錯誤情況報出,然後人工二次校驗。
值得一提的是,當時還考慮過使用OCR辨識單詞,然後進行詞典檢索以判別錯誤拼接的情況,但受限於比賽的時間問題而作罷,使用了人工校對的方法。
以下是英文橫縱切的復原結果:
3、雙面橫縱切
這種情況甚至多了一個維度的資訊,和其他方法沒有什麽區別。
4、結論
只要依稀能看出兩三個文字或字母邊緣的都有可能。同樣破碎大小,難度上英文 > 中文。
但上面的例子不是真實的碎紙拼接,均是圖片,優點在於圖片清晰,免去掃描。
倘若是實物則需要先進行掃描,而且圖片的邊緣可能不整齊。一方面可能會多出一些邊緣形狀資訊,但另一方面文字的邊緣可能會被切除,不像圖片分割,切割線是沒有像素遺失的。而且還可能會有汙點、破損等等各種復雜的情況。
考慮到我這只不過是一個大學生參與的的三天比賽,那些有實力的人實作更為復雜的、碎片更為細碎的復原是完全有可能的。
所以,要麽切得足夠碎,要麽燒掉~