以下是一些解释
的代码$("#upperBound").on('input',function(){
console.log("1");
loadAndViewImagethresholding(imageId);
console.log("4");
});
function loadAndViewImagethresholding(imageId) {
_("thresholdingdicomImage").style.opacity = "0.3";
var elementthresh = $('#thresholdingdicomImage').get(0);
cornerstone.enable(elementthresh);
var imageIdpro="wadouri:"+"http://localhost:8888/dicomread/temp/"+loadfileName;
cornerstone.loadImage(imageId).then(function(image) {
cornerstone.loadImage(imageIdpro).then(function(imagepro) {
upper=_("upperBound").value;
lower=_("lowerBound").value;
for (var i = 0;i<image.getPixelData().length;i++) {
if(imagepro.getPixelData()[i]<lower||imagepro.getPixelData()[i]>upper)
{
imagepro.getPixelData()[i]=image.minPixelValue;
// console.log("imageproCopyaftercompare:"+imagepro.getPixelData()[436512]);
}
else{imagepro.getPixelData()[i]=image.maxPixelValue;
//console.log("imageproCopyaftercompare:"+imagepro.getPixelData()[436512]);
}
}
console.log("imageproCopyaftercompare:"+imagepro.getPixelData()[436512]);
var viewportthresh = cornerstone.getDefaultViewportForImage(elementthresh, imagepro);
console.log("2");
cornerstone.displayImage(elementthresh, imagepro);
});
});
}
所以基本的想法是使用幻灯片upperBound
将上(下)值更改为阈值图像,但在更改滑块后似乎没有任何变化。我为436512像素创建console.log
,似乎在给滑块输入后imagepro
(原始数据数组)已更改,但下一个displayImage未实现。
然后我创建一个console.log("1 to 4")
来查看滑块事件是如何实现的,结果是1,4,2,3,而不是我期望的1,2,3,4。
所以我的问题是这个滑块是如何实现的?它会先实现1,4然后调用函数(loadAndViewImagethresholding(imageId);)吗?
如果可能,请给我一些想法来解决这个问题,任何帮助表示赞赏。 顺便说一句,基石是我使用的js。