def processImages(client, scriptParams): message = '' # for params with default values, we can get the value directly dataType = scriptParams['Data_Type'] ids = scriptParams['IDs'] contextName = scriptParams['Context_Name'] tableName = '/Wndcharm/' + contextName + '/SmallFeatureSet.h5' message += 'tableName:' + tableName + '\n' ftb = WndcharmStorage.FeatureTable(client, tableName) try: # Get the datasets objects, logMessage = script_utils.getObjects(ftb.conn, scriptParams) message += logMessage if not objects: return message datasets = WndcharmStorage.datasetGenerator(ftb.conn, dataType, ids) for ds in datasets: message += 'Processing dataset id:%d\n' % ds.getId() msg = countCompleted(ftb, ds) message += msg except: print message raise finally: ftb.close() return message
def predict(client, scriptParams): message = "" # for params with default values, we can get the value directly projectId = scriptParams["Training_Project_ID"] dataType = scriptParams["Data_Type"] predictIds = scriptParams["IDs"] commentImages = scriptParams["Comment_Images"] tagImages = scriptParams["Tag_Images"] contextName = scriptParams["Context_Name"] tableNameIn = "/Wndcharm/" + contextName + WndcharmStorage.SMALLFEATURES_TABLE tableNameF = "/Wndcharm/" + contextName + WndcharmStorage.CLASS_FEATURES_TABLE tableNameW = "/Wndcharm/" + contextName + WndcharmStorage.CLASS_WEIGHTS_TABLE tableNameL = "/Wndcharm/" + contextName + WndcharmStorage.CLASS_LABELS_TABLE message += "tableNameIn:" + tableNameIn + "\n" message += "tableNameF:" + tableNameF + "\n" message += "tableNameW:" + tableNameW + "\n" message += "tableNameL:" + tableNameL + "\n" ftb = WndcharmStorage.FeatureTable(client, tableNameIn) ctb = WndcharmStorage.ClassifierTables(client, tableNameF, tableNameW, tableNameL) try: message += "Loading classifier\n" trainProject = ftb.conn.getObject("Project", projectId) trainFts, weights = loadClassifier(ctb, trainProject) classifierName = WndcharmStorage.CLASSIFIER_WNDCHARM_NAMESPACE tagSet = WndcharmStorage.getClassifierTagSet(classifierName, trainProject.getName(), trainProject) # Predict message += "Predicting\n" predDatasets = WndcharmStorage.datasetGenerator(ftb.conn, dataType, predictIds) for ds in predDatasets: message += "Predicting dataset id:%d\n" % ds.getId() pred, msg = predictDataset(ftb, trainFts, ds, weights) message += msg message += addPredictionsToImages(ftb.conn, pred, ds.getId(), commentImages, tagSet) except: print message raise finally: ftb.close() ctb.close() return message
def processImages(client, scriptParams): message = '' # for params with default values, we can get the value directly dataType = scriptParams['Data_Type'] ids = scriptParams['IDs'] contextName = scriptParams['Context_Name'] newOnly = scriptParams['New_Images_Only'] tableName = '/Wndcharm/' + contextName + '/SmallFeatureSet.h5' message += 'tableName:' + tableName + '\n' ftb = WndcharmStorage.FeatureTable(client, tableName) try: nimages = 0 # Get the datasets objects, logMessage = script_utils.getObjects(ftb.conn, scriptParams) message += logMessage if not objects: return message datasets = list(WndcharmStorage.datasetGenerator( ftb.conn, dataType, ids)) good, chNames, msg = checkChannels(datasets) message += msg if not good: raise omero.ServerError( 'Channel check failed, ' + 'all images must have the same channels: %s' % message) for d in datasets: message += 'Processing dataset id:%d\n' % d.getId() for image in d.listChildren(): message += 'Processing image id:%d\n' % image.getId() msg = extractFeatures(ftb, d, newOnly, chNames, im=image) message += msg + '\n' except: print message raise finally: ftb.close() return message