Esempio n. 1
0
def redo_quality2(block_path, dense_gt_path, minMemb, minSeg, sigMin, sigWeights, sigSmooth, edgeLengths=None,
                      nodeFeatures=None, nodeSizes=None, nodeLabels=None, nodeNumStop=None, beta=0, metric='l1',
                      wardness=0.2, out=None):
    folder_list = [f for f in os.listdir(block_path) if not os.path.isfile(os.path.join(block_path,f))
                   and ("figure" not in f) and "redone" not in f]
    print "folder_list", folder_list
    outpath = block_path + "/redone_quality"
    if not os.path.exists(outpath):
        os.mkdir(outpath)

    dense_gt_data = read_h5(dense_gt_path)
    nodes_in_dgt = len(np.unique(dense_gt_data))
    for f in folder_list:
        folder_path = os.path.join(block_path, f)
        prob_file = [h for h in os.listdir(folder_path) if "probs" in h]
        prob_file_path = os.path.join(folder_path,prob_file[0])
        print
        print
        print prob_file_path
        predict_data = read_h5(prob_file_path)
        adjusted_predict_data = adjust_predict(predict_data)
        print "#nodes in dense gt", nodes_in_dgt
        pmin = 0.5

        seg, sup, wsDt_data, agglCl_data = get_segmentation(adjusted_predict_data, pmin, minMemb, minSeg, sigMin, sigWeights,
                                                            sigSmooth,True,False, edgeLengths,nodeFeatures, nodeSizes,
                                                            nodeLabels, nodeNumStop,beta, metric, wardness, out)
        nodes_in_seg = len(np.unique(seg))
        nodes_in_sup = len(np.unique(sup))

        ri, voi = rand_index_variation_of_information(seg, dense_gt_data)

        new_folder_path = outpath + "/" + f
        if not os.path.exists(new_folder_path):
            os.mkdir(new_folder_path)

        key = "pmin_"+ str(pmin) + "_minMemb_" + str(minMemb)+ "_minSeg_"+ str(minSeg) +"_sigMin_" + str(sigMin) + \
              "_sigWeights_" + str(sigWeights) + "_sigSmooth_" + str(sigSmooth) + "_nodeNumStop_" + str(nodeNumStop)
        save_h5(seg, new_folder_path + "/segmentation.h5", key)
        save_h5(sup, new_folder_path + "/super_pixels.h5", key)
        seg_data = np.zeros((2,3))
        seg_data[0,0] = ri
        seg_data[0,1] = voi
        seg_data[1,0] = nodes_in_dgt
        seg_data[1,1] = nodes_in_sup
        seg_data[1,2] = nodes_in_seg
        save_h5(seg_data, new_folder_path + "/seg_data", key, None)
Esempio n. 2
0
def test_wsDt_agglCl_configs(predict_path, dense_gt_path, pmin=0.5, minMemb=10, minSeg=10, sigMin=2, sigWeights=2, sigSmooth=0.1):
    """
    :param predict_path:
    :param dense_gt_path:
    :param pmin:
    :param minMemb:
    :param minSeg:
    :param sigMin:
    :param sigWeights:
    :param sigSmooth:
    :return:
    """

    #get rand index and variation of information
    predict_data = read_h5(predict_path)
    adjusted_predict_data = adjust_predict(predict_data)
    dense_gt_data = read_h5(dense_gt_path)
    seg, sup = get_segmentation(adjusted_predict_data,pmin,minMemb,minSeg,sigMin,sigWeights,sigSmooth)
    ri, voi = rand_index_variation_of_information(seg, dense_gt_data)
    print "ri, voi", ri, voi

    config = predict_path.split("/")[-2]
    filename = config + "_" + predict_path.split("/")[-1]
    outpath_folder = "/home/stamylew/test_folder/q_data/wsDt_agglCl_tests/"
    outpath = outpath_folder + filename

    key = "sigMin_" + str(sigMin) + "_sigWeights_" + str(sigWeights) + "_sigSmooth_" + str(sigSmooth)

    if not os.path.exists(outpath):
        print "Output h5 file did not exist."
        data = np.zeros((1,2))
        data[0,0] = ri
        data[0,1] = voi
        save_h5(data, outpath, key, None)
    else:
        old_data = read_h5(outpath, key)
        data = np.zeros((1,2))
        data[0,0] = ri
        data[0,1] = voi
        new_data = np.vstack((old_data, data))
        save_h5(new_data, outpath, key, None)