首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >怎样才能匹配两条破损的边缘?

怎样才能匹配两条破损的边缘?
EN

Stack Overflow用户
提问于 2019-05-08 00:03:49
回答 1查看 411关注 0票数 5

链接到代码要点。,我正在尝试重建一张被撕破的纸。第一步是检测撕裂的边缘:

接下来,旋转一个撕裂的边缘,并将其与另一个撕裂的边缘进行比较:

当两个等高线匹配时,文档将对齐。旋转一片,比较撕裂的边缘。一个名为match的分数描述了两个等高线之间的匹配:

代码语言:javascript
复制
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))

这两条等高线不太合拍:

这些轮廓很好地结合在一起。在这里,文件是对齐的:

轮廓匹配的计算是基础。我在不同的图像上画轮廓。对图像进行求和,并应用阈值。这将计算两个等值线重叠的像素数。这种方法效果很好,但是当比较几个边时,速度太慢了。

如何计算撕裂边的两条轮廓之间的匹配程度?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-08 14:36:45

假设没有任何复杂情况(请参阅我上面的评论),您可以尝试下面概述的过程。见下图。

  • 计算连接edge1端点的直线方程
  • 计算连接edge2端点的直线方程
  • 计算这两条直线之间的角度
  • 这为角度提供了两种可能性:alpha180-alpha
  • 找到两个直线段的中点并对齐它们(如图所示)。也许你已经在做一些对齐曲线的事情了)
  • 然后,尝试这两个角度,看看哪一个给出最佳匹配根据您的匹配成本。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56031885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档