def evaluateFileAtThresholds(args): file,thresholds,dims,randOrPixel=args affTrue,affEst = loadAffs(file,dims) nExamples = (affTrue.size)/3 if(randOrPixel=="rand"): pSqErr=-1 nhood = np.eye(3) compTrue = connectedComponents(affTrue,nhood).astype('d',order='F') else: pSqErr=pixelSquareError(affTrue,affEst) #todo: make this inline err,tp,fp = (np.empty([1,len(thresholds)]) for i in range(3)) for i in range(len(thresholds)): threshold = thresholds[i] if(randOrPixel=="rand"): err[0,i],tp[0,i],fp[0,i],pos,neg = randStatsForThreshold(compTrue,affEst,threshold) # this might give an error for making pos, neg nan (if(~isnan(pos_)) pos=pos_; end) # print threshold,tp[0,i] else: err[0,i],tp[0,i],fp[0,i],pos,neg = pixelStatsForThreshold(affTrue,affEst,threshold) #todo: pos, neg can be taken out of the loop (put with pSqErr) return err,tp,fp,pos,neg,pSqErr,nExamples
sys.path.append('connectedComponents') sys.path.append('watershed') sys.path.append('randStats') from randStats import randIndex import numpy as np from loadAffs import loadAffs from connDefs import connectedComponents from waterDefs import markerWatershed from randStats import randIndex import time #read in data t0 = time.clock() dataRoot = '../testData/000' dims = [73,73,73] affTrue, affEst = loadAffs(dataRoot,dims) affTrue = affTrue.astype(dtype='d',order='F') nhood = np.eye(3) thresh=.97 affEst = affEst.astype(dtype='d',order='F') affEstThresh=(affEst>thresh).astype(dtype='d') #call connected components comp = connectedComponents(affEstThresh,nhood).astype(dtype='d',order='F') compTrue = connectedComponents(affTrue,nhood).astype(dtype='d',order='F') #set up data for watershed nhood = -1*np.eye(3) compE = np.zeros((73,73,73)).astype(dtype='d',order='F') compT = np.zeros((73,73,73)).astype(dtype='d',order='F') for x in range(73):