使用OpenCV获得拼图的单像素线轮廓

时间:2016-08-14 23:45:49

标签: opencv computer-vision

我试图从拼图的照片中自动提取所有拼图的轮廓。这是灰度输入图像:

Greyscale image

到目前为止,我已经能够获得更有用的图像,该图像通过采用局部标准偏差(11px框内的标准偏差)和应用5px框模糊来改变照明条件。结果使用opencv。这给了我这个:

enter image description here

从这里开始,我不知道该如何做到这些片段之间的单个像素线。每个单件的近似轮廓都不够好,因为我希望能够将图像切割成碎片,并且能够独立地移动这些碎片,同时碎片仍能完美地组合在一起。

findContours的结果远远不够好。

我理想的输出是让图像覆盖原件并在每对相邻的件之间有一条1px的黑线。

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

  1. 使用局部阈值进行图像阈值处理。

  2. 删除面积较小的区域。

  3. 反转图像(255 - ThreholdImage)

  4. 使用findContours查找连接的组件。

  5. 结果是: enter image description here

    它远非完美,但我认为这是因为我使用了你在帖子中提供的图像。我想如果你发布原始图像,我会得到更好的结果。