代码之家  ›  专栏  ›  技术社区  ›  John_Sharp1318

用scipy阅读BSD500基本真理

  •  0
  • John_Sharp1318  · 技术社区  · 6 年前

    我想用scipy加载 loadmat 一个地面真相文件,它返回对象类型的numpy ndarray( dtype='O' ).

    从这个对象我到达访问的每个元素也是ndarrays,但我正在努力从这一点访问分割或边界图像。

    我想把它转换成一系列的数字类型我该怎么做?

    提前谢谢你的帮助

    1 回复  |  直到 6 年前
        1
  •  0
  •   John_Sharp1318    6 年前

    我找到了解决问题的方法。 我不认为它是最优的,但它是有效的。

    def load_bsd_gt(filename):
        gt = loadmat(filename)
    
        gt = gt['groundTruth']
    
        cols = gt.shape[1]
    
        what = ['Segmentation','Boundaries']
    
        ret = list()
    
        for i in range(cols):
            j=0
            tmp = list()
            for w in what:
                tmp.append(gt[0][j][w][0][0][:])
                j+=1
            ret.append(tmp)
    
        return ret
    

    如果有人有更好的方法,请随时添加评论或答案。