c# - 当轮廓可以撕裂时,如何检测简单形状(使用emgu cv)?

标签 c# opencv image-processing emgucv opencv-contour

我需要找到图片中最流行的简单形状(通常是矩形)的坐标。我使用了此处描述的方法(Simple approach for finding rectangles)。但是我面临图片中显示的情况。有些盒子的边框破了,我无法用标准方法检测到它们。这些矩形以红色圈出。
Objects have torn contours您会提出什么解决方案?

更新:

在二值化之前使用膨胀/腐 eclipse :

  • 扩张

  • Dilate image before binarization
  • 侵 eclipse

  • Erode image before binarization

    最佳答案

  • 使用小的结构元素
  • 使用简单的膨胀
  • 查找连接的组件
  • 对于每个连接的组件,我将计算组件中像素数除以边界框的面积之比,我将仅保留那些非常接近1的像素。
  • 关于c# - 当轮廓可以撕裂时,如何检测简单形状(使用emgu cv)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38640640/

    相关文章:

    c# - 多线程丛林中的全局异常处理 - 故障安全/重启

    c++ - OpenCV - 匹配 SURF 点运行时错误

    c++ - 如何从Opencv中的图像矩阵中提取数值梯度矩阵

    python - OpenCV 找不到正确的 CUDA 版本

    python - 如何在python中将所有图像像素打印到数组中

    c# - Telnet 服务器 -> 退格键/删除不起作用

    c# - 在不使用 IDbContextFactory 的情况下首先编写自定义连接字符串和迁移

    c# - 如何使用 ContinueWith 正确管理任务中的异常

    java - 如何转换和写入大图像而不导致 OOM 错误?

    image - 从 imread 返回的 ndims