小编dan*_*shi的帖子

分水岭分割除了单独的对象?

问题

使用此答案创建分段程序,它会错误地计算对象.我注意到单独的物体被忽略或者成像采集不佳.

我计算了123个对象,程序返回117,如下所示.用红色圈出的物体似乎丢失了:

缺少对象

使用720p网络摄像头中的以下图像:

图片有123个对象

import cv2
import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import label
import urllib.request


# https://stackoverflow.com/a/14617359/7690982
def segment_on_dt(a, img):
    border = cv2.dilate(img, None, iterations=5)
    border = border - cv2.erode(border, None)

    dt = cv2.distanceTransform(img, cv2.DIST_L2, 3)
    plt.imshow(dt)
    plt.show()
    dt = ((dt - dt.min()) / (dt.max() - dt.min()) * 255).astype(np.uint8)
    _, dt = cv2.threshold(dt, 140, 255, cv2.THRESH_BINARY)
    lbl, ncc = label(dt)
    lbl = lbl * (255 / (ncc + 1))
    # Completing the …
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision python-3.x

5
推荐指数
1
解决办法
355
查看次数

标签 统计

computer-vision ×1

opencv ×1

python ×1

python-3.x ×1