I am trying to apply getGaussianBlurPass filter to decrease the noise from the image and then pass that image to mapper for rendering. But whenever i try that canvas shows empty image.
And in console: I receive No input error.
function getConvolutionPass(kernel, kernelDimension, delegates = null) {
const convolutionPass = vtkConvolution2DPass.newInstance();
if (delegates !== null) {
convolutionPass.setDelegates(delegates);
}
convolutionPass.setKernelDimension(kernelDimension);
convolutionPass.setKernel(kernel);
return convolutionPass;
}
function getGaussianBlurPass(delegates = null) {
return getConvolutionPass([1, 2, 1, 2, 4, 2, 1, 2, 1], 3, delegates);
}
for (i = 0; i < imageData.length; i++){
actor = vtk.Rendering.Core.vtkVolume.newInstance();
mapper = vtk.Rendering.Core.vtkVolumeMapper.newInstance();
ofun = vtk.Common.DataModel.vtkPiecewiseFunction.newInstance();
ctfun = vtk.Rendering.Core.vtkColorTransferFunction.newInstance();
console.log(filter_input_data = getGaussianBlurPass(imageData[i]));
console.log(dataRange = imageData[i].getPointData().getScalars().getRange());
dimensions = imageData[i].getDimensions()
console.log('volume dimensions', dimensions)
ii_0 = parseInt(dataRange[0])
ii_mid = parseInt(dataRange[1] / 2)
ii_1 = parseInt(dataRange[1])
ofun.addPoint(ii_0, 0.0);
ofun.addPoint(ii_1, 1.0);
ctfun.addRGBPoint(i, mycolor[i+1].rgb.r, mycolor[i+1].rgb.g, mycolor[i+1].rgb.b);
actor.getProperty().setRGBTransferFunction(0, ctfun);
actor.getProperty().setScalarOpacity(0, ofun);
actor.getProperty().setScalarOpacityUnitDistance(0, 3.0);
actor.getProperty().setInterpolationTypeToLinear();
actor.getProperty().setShade(true);
actor.getProperty().setUseGradientOpacity(0, true);
actor.getProperty().setGradientOpacityMinimumOpacity(0, 0.0);
actor.getProperty().setGradientOpacityMaximumOpacity(0, 1.0);
actor.getProperty().setAmbient(0.2);
actor.getProperty().setDiffuse(0.7);
actor.getProperty().setSpecular(0.3);
actor.getProperty().setSpecularPower(8.0);
mapper.setInputData(filter_input_data[i]);
console.log(mapper.setSampleDistance(0.4));
const el = document.querySelector('.blendMode');
el.addEventListener('change', updateBlendMode);
const scalarMinEl = document.querySelector('.scalarMin');
scalarMinEl.addEventListener('input', updateScalarMin);
const scalarMaxEl = document.querySelector('.scalarMax');
scalarMaxEl.addEventListener('input', updateScalarMax);
actor.setMapper(mapper);
renderer.addActor(actor);
}
renderer.resetCamera();
renderer.getActiveCamera().elevation(70);
renderWindow.addRenderer(renderer);
interactor.setDesiredUpdateRate(15.0);
interactor.setView(openglRenderWindow);
interactor.initialize();
interactor.bindEvents(container);
interactor.setInteractorStyle(interactorStyle);
renderWindow.render()
}
How can i solve this?
Any suggestion?