链接到代码要点。我正在尝试重建一张破纸。第一步是检测撕裂边缘:
接下来,旋转一条撕裂边并与另一条撕裂边进行比较:
当两个轮廓相互匹配时,文档被对齐。旋转一件并比较撕裂的边缘。一个名为的分数match描述了两个轮廓之间的匹配:
tempA = draw_contour(tempA, b, 123, 3)
tempB = draw_contour(tempB, a, 123, 3)
tempC = tempA + tempB
_, thresh = cv2.threshold(tempC, 220, 255, cv2.THRESH_BINARY_INV);
thresh = 255 - thresh
match = sum(sum(thresh))
Run Code Online (Sandbox Code Playgroud)
这两个轮廓不能很好地结合在一起:
这些轮廓非常吻合。这里的文件是对齐的:

轮廓匹配的计算是基本的。我在单独的图像上绘制轮廓。对图像求和并应用阈值。这会计算两个轮廓重叠的像素数。这种方法效果很好,但在比较多个边时速度太慢,不实用。
假设没有并发症(请参阅上面我的评论),您可以尝试下面概述的过程。见下图。
alpha或180-alpha| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |