image-nodes
Version:
A library for visual programming of image-processing algorithms on dicom images
61 lines (51 loc) • 1.57 kB
JavaScript
import ImageMath from "./image-math.js";
import PixelMath from "./pixel-math.js";
class NodeActions {
runAction(action, args) {
var actions = {
add: () => { return this.runAdd(args); },
custom: () => { return this.runCustom(args); },
fit: ()=> { return this.runFit(args); },
image: () => { return this.runImage(args); },
view: () => { return this.runView(args); }
}
return actions[action]();
}
runAdd(args) {
var node = args.node;
var data = node.getInputNode(0).runNode();
var data2 = node.getInputNode(1).runNode();
var dataOut = PixelMath.add(data, data2);
//var dataOut = ImageMath.getBlankImageData(data.width, data.height);
//ImageMath.addImage(data, data2, dataOut);
return dataOut;
}
runCustom(args) {
return null;
}
runFit(args) {
var node = args.node;
var data = Array(5);
data = node.getInputNode(0).runNode().fileset;
var times = [5e-3, 10e-3, 20e-3, 30e-3, 40e-3];
var modes = {
'Linear Map': () => { return PixelMath.linearImageMap(times, data); },
'Nonlinear Map': () => { return PixelMath.nonlinearImageMap(times, data); }
}
var dataOut = modes[node.selectedMode]();
return dataOut;
}
runImage(args) {
return args.node.file;
//return ImageMath.getImageData(args.node.img);
}
runView(args) {
var node = args.node;
var data = node.getInputNode(0).runNode();
var img = data.dicom.createImg(); // Note: Should be DICOM
//var img = ImageMath.createImg(data);
img.onload = () => { node.createImg(img.src); }
return data;
}
}
export default new NodeActions();