代码之家  ›  专栏  ›  技术社区  ›  Farshid Rayhan

如何从COCO数据集创建遮罩图像?

  •  3
  • Farshid Rayhan  · 技术社区  · 6 年前

    所以我一直在使用这个代码。我正在尝试从COCO数据集中生成图像的原始蒙版。

    datadir='g:'
    datatype='train2014'
    annfile='/annotations/instances.json'.格式(datadir,datatype)
    
    
    coco=coco(annfile)
    annfile='/annotations/person.json'.格式(datadir,datatype)
    coco_kps=coco(annfile)
    
    
    catids=coco.getcatids(catnms=['人'])
    imgids=coco.getimgids(catids=catids);
    imgids=coco.getimgids(imgids=imgids[0])
    img=coco.loadimgs(imgids[np.random.randint(0,len(imgids))])[0]
    i=io.imread('g:/train2014/'+img['文件名'])
    
    plt.imshow(i);plt.axis('off')
    annids=coco.getannids(imgids=img['id'],catids=catids,iscrowd=none)
    anns=coco.loadanns(annid)
    Coco.Showanns(美国国家标准)
    

    但我得到的是这样的东西

    但我想要这样的东西

    如何获取每个图像的原始遮罩?

    但我得到的是这样的东西

    enter image description here

    但我想要这样的东西

    enter image description here

    如何获取每个图像的原始遮罩?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Farshid Rayhan    6 年前

    mask = coco.annToMask(anns[0])
    for i in range(len(anns)):
        mask += coco.annToMask(anns[i])
    
    plt.imshow(mask)
    
        2
  •  2
  •   filippo    6 年前

    annToMask

    annIds = coco.getAnnIds(imgIds=img['id'], catIds=catIds, iscrowd=None)
    
    mask = np.zeros_like(img)
    for i, ann in enumerate(annIds):
        mask += coco.annToMask(ann) * i