先说答案:
现代碎纸机不行,但如果碎片简单那么可能可以。
这就不得不提起2013年的全国数学建模竞赛中的B题——碎纸复原。
问题有各种难度,大致来说有:纵切、横纵切、双面横纵切。
1、纵切
纵切的最简单,大概是这样:
基本上利用像素欧氏距离和一些简单的贪心算法进行匹配即可。
2、横纵切
横纵切开始因为碎片太多,组合太多。需要利用一些聚类算法进行分类,一般可以利用行特征、边缘特征、像素分布特征、间距特征。
这里稍微复杂一点,而且开始需要进行一些人工校验判误,就像这样。
算法将疑似的错误情况报出,然后人工二次校验。
值得一提的是,当时还考虑过使用OCR识别单词,然后进行词典检索以判别错误拼接的情况,但受限于比赛的时间问题而作罢,使用了人工校对的方法。
以下是英文横纵切的复原结果:
3、双面横纵切
这种情况甚至多了一个维度的信息,和其他方法没有什么区别。
4、结论
只要依稀能看出两三个文字或字母边缘的都有可能。同样破碎大小,难度上英文 > 中文。
但上面的例子不是真实的碎纸拼接,均是图片,优点在于图片清晰,免去扫描。
倘若是实物则需要先进行扫描,而且图片的边缘可能不整齐。一方面可能会多出一些边缘形状信息,但另一方面文字的边缘可能会被切除,不像图片分割,切割线是没有像素丢失的。而且还可能会有污点、破损等等各种复杂的情况。
考虑到我这只不过是一个大学生参与的的三天比赛,那些有实力的人实现更为复杂的、碎片更为细碎的复原是完全有可能的。
所以,要么切得足够碎,要么烧掉~