OpenCV如何从噪声和误报中清除轮廓

时间:2019-03-08 11:44:13

标签: python opencv contour

我在Python中使用标准功能cv2.findContours找到了图像轮廓。

enter image description here

但是,正如您所见,中间有一个点,我无法在不中断轮廓线的情况下对其进行过滤。

如何删除这样的假阳性簇? 轮廓之外的那些不重要。

    gray = cv2.cvtColor(self.img, cv2.COLOR_RGB2GRAY)

    _, mask = cv2.threshold(gray, thresh=152, maxval=162, type=cv2.THRESH_BINARY)

    self.mask = cv2.bitwise_and(gray, mask)
    self.contours, hierarchy = cv2.findContours(self.mask, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

1 个答案:

答案 0 :(得分:0)

一种避免误报的好方法是考虑具有最大面积的轮廓:

<div class="dropdown-menu" id="plat-form-options">
  {% for platform in game.platform.all %}
      <a href="#" class="dropdown-item" value="{{ platform.id }}"
              onclick="platFormSelect('{% url 'title-updates-ajax' slug=game.slug platform_id=platform.id %}', '{{ platform }}')">{{ platform }}</a>
  {% endfor %}
</div>

这将删除小点,同时仅给出最大轮廓