gpt4 book ai didi

opencv - 在白色背景上查找形状。细化线条

转载 作者:太空宇宙 更新时间:2023-11-03 22:50:09 26 4
gpt4 key购买 nike

我有以下图像作为测试图像:

enter image description here

我尝试在图像(和其他图像)上找到形状。我现在的做法如下:

  1. 具有 3x3 核的高斯模糊
  2. Canny 边缘检测使用列表(获取所有形状)
  3. 形态学与 MorphOp.Close to close边缘
  4. FindContours 寻找轮廓
  5. 每个轮廓的迭代:
    1. 找到 ApproxPolyDP
    2. 找到凸包
    3. 丢弃如果船体尺寸 < 2,大约面积 < 200 或船体尺寸 > 50000,或弧长大约 < 100
    4. 绘制凸包

此方法生成以下绘制凸包的图像: enter image description here

这几乎是完美的,但请注意,线条被视为等高线 events->suppliers and events->documents)。查看边缘信息时,很明显为什么会这样:

enter image description here

线条被检测为轮廓。我如何准备/找到形状以便不检测到线条?我虽然有一些细化算法,但由于我也在处理现实生活中的图像,因此很难找到有效的阈值。这是一个现实生活中的图像示例,其中细化很难进行,因为细化通常要求图像为黑白单色。

enter image description here

你会怎么做?有什么方法可以确定轮廓/凸包是直线、矩形还是类似的东西?

最佳答案

我最终混合使用了重叠测试和凸性扫描。凸性扫描凸包与实际轮廓之间的误差。如果此错误超过一定数量,则忽略船体。如果两个凸包重叠,则重叠简单地使用按位和去技术。如果它们重叠超过 95%,则忽略其中一个。

关于opencv - 在白色背景上查找形状。细化线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39743750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com