【问题标题】:Get biggest coherent area获得最大的连贯区域
【发布时间】:2018-12-11 18:12:31
【问题描述】:

我有这样的图片:

我的数据由 numpy matrizes 组成,而白色由 1 表示,黑色由 0 表示。我想在这些图像中提取身体。我可以假设身体始终是图像中最大的连贯区域。

是否有现有的算法或者我应该创建自己的算法?

【问题讨论】:

  • 你应该探索 OpenCV。您可以玩形态学运算,然后使用 findcountours 函数。每个轮廓可以被隔离,或者按区域过滤等

标签: python numpy scipy


【解决方案1】:

我们可以使用skimage.measurelabelregionprops 两种方法。因此,将im 作为2D 输入图像,我们将得到如下所示的图像。

方法 #1 使用 labelnumpy.bincount -

from skimage.measure import label, regionprops

l = label(im)
out = (l==np.bincount(l.ravel())[1:].argmax()+1).astype(int)

方法 #2 使用 labelregionprops -

r = regionprops(l) # l is from previous approach
out = (l==(1+np.argmax([i.area for i in r]))).astype(int)

给定样本的输出 -

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2014-04-15
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多