예제 #1
0
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()
예제 #2
0
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()