CT扫描图像中组织密度的数值
CT扫描通过使用X射线在不同方向上进行大量的测量
然后计算出组织对X射线的吸收程度,从而生成具有不同灰度级别的图像
CT值是在DICOM文件中存储和传输这些信息的一种方式。
Hounsfield单位(Hounsfield Units,HU): CT值通常以Hounsfield单位表示,以荷斯菲尔德(Hounsfield)的名字命名。Hounsfield单位定义了CT值的标度,使得水的CT值为0,空气为-1000,骨骼结构为正值。这种标度使医生和放射技师能够在图像中识别和区分不同类型的组织。
组织密度和CT值关系: CT值是与扫描的组织密度直接相关的。例如,骨头和金属等致密组织在CT图像中通常具有较高的CT值,而气体和脂肪等较为松散的组织则具有较低的CT值。
CT值的范围: CT值的范围可以很广泛,通常从-1000到+1000 HU。负值表示低密度或气体,0表示水的密度,正值表示高密度或致密物质。
影响CT值的因素: CT值受多种因素的影响,包括X射线的能量、扫描协议、患者体质等。不同的CT扫描参数和设置可能导致相同类型的组织在不同图像中具有不同的CT值。
在鼠标移动的过程中获取到鼠标对应点的CT值
document.getElementById(`demo`).addEventListener('mousemove', (event) => { this.listenerMouseMove });
listenerMouseMove(event) {
const element = document.getElementById('demo');
const rect = element.getBoundingClientRect();
const canvasPos = [
Math.floor(event.clientX - rect.left),
Math.floor(event.clientY - rect.top),
];
// 前提是renderingEngine已初始化,已渲染Volume
const worldPos = renderingEngine.getViewport(viewportId).canvasToWorld(canvasPos);
getCTValue(cache.getVolume(volumeId), worldPos);
},
function getCTValue(volume, worldPos) {
if (!volume || !worldPos) {
return null;
}
const { dimensions, scalarData, imageData } = volume;
const index = imageData.worldToIndex(worldPos);
index[0] = Math.floor(index[0]);
index[1] = Math.floor(index[1]);
index[2] = Math.floor(index[2]);
if (!csUtils.indexWithinDimensions(index, dimensions)) {
return null;
}
const yMultiple = dimensions[0];
const zMultiple = dimensions[0] * dimensions[1];
return scalarData[index[2] * zMultiple + index[1] * yMultiple + index[0]]; // 返回对应的CT值
},
Columns(列数): 表示图像数据的列数,即图像的宽度。
Rows(行数): 表示图像数据的行数,即图像的高度。
Frames(帧数): 对于体数据(3D 数据),表示数据集中的帧数。对于普通的二维图像,帧数通常为 1
Pixel Spacing(像素间距): 表示相邻像素在物理空间中的距离,通常以毫米为单位。
Slice Thickness(切片厚度): 对于 3D 数据,表示相邻切片的距离
是图像或体数据中的标量数值,定义了 DICOM 文件中图像或体数据的强度和密度等物理含义