我从服务器获取jpg图像(来自DICOM文件)。我使用这些文件来设置画布图像数据。现在我想改变图像的窗口中心和窗口宽度,但不知道该怎么做以及如何做。
DICOM图像的光度学解释可能只有MONOCHROME2或MONOCHROME1。
经过一些研究后我编写了代码
var center,width; var xMin ; var xMax ;
function wind(data)
{
if (data <= xMin)
oColor = 0;
else if (data > xMax)
oColor = 255;
else
oColor = ( (data - (center-0.5) ) / (width-1) + 0.5 )*255;
return oColor;
}
function clk()
{
center = txtcenter.value/256.0;
width = txtwidth.value/256.0;
xMin = center - 0.5 - (width-1) / 2;
xMax = center - 0.5 + (width-1) / 2;
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(img,0,0,c.width,c.height);
var imgData=ctx.getImageData(0,0,c.width,c.height);
for (var i=0;i<imgData.data.length;i+=4)
{
var a = wind(imgData.data[i]);
imgData.data[i]= a ;
imgData.data[i+1]= a;
imgData.data[i+2]= a;
}
ctx.putImageData(imgData,0,0);
}
但它没有按预期工作。请纠正我的误解(我知道它存在)。