del channels # create empty feature stack features = FeatureStack(stack.getWidth(), stack.getHeight(), False) # set my features to the feature stack features.setStack(stack) # put my feature stack into the array featuresArray.set(features, 0) featuresArray.setEnabledFeatures(features.getEnabledFeatures()) mp = MultilayerPerceptron() hidden_layers = "%i,%i,%i" % (20, 14, 8) mp.setHiddenLayers(hidden_layers) mp.setLearningRate(0.7) mp.setDecay(True) mp.setTrainingTime(200) mp.setMomentum(0.3) wekaSegmentation = WekaSegmentation(image) wekaSegmentation.setFeatureStackArray(featuresArray) wekaSegmentation.setClassifier(mp) wekaSegmentation.addExample(0, posroi, 1) wekaSegmentation.addExample(1, negroi, 1) wekaSegmentation.trainClassifier() wekaSegmentation.saveClassifier(folder + "\\vessel-classifier_big.model") output = wekaSegmentation.applyClassifier(image, featuresArray, 0, True) output.show()
for i in range(len(entropies)): stack.addSlice("entropy" + str(entropies[i]), entropies_imgs[i].getProcessor()) for i in range(len(gaussians)): stack.addSlice("gaussian" + str(gaussians[i]), gaussians_imgs[i].getProcessor()) #free memory del gaussians_imgs del entropies_imgs # put feature stack into array features = FeatureStack(stack.getWidth(), stack.getHeight(), False) features.setStack(stack) featuresArray.set(features, 0) featuresArray.setEnabledFeatures(features.getEnabledFeatures()) smo = SMO() wekaSegmentation = WekaSegmentation(image) wekaSegmentation.setFeatureStackArray(featuresArray) wekaSegmentation.setClassifier(smo) wekaSegmentation.addExample(0, posroi, 1) wekaSegmentation.addExample(1, negroi, 1) wekaSegmentation.trainClassifier() wekaSegmentation.saveClassifier(folder + "\\vessel-classifier_scaled.model") output = wekaSegmentation.applyClassifier(image, featuresArray, 0, True) output.show()