matlab的使用"overlayVolume"显示

Use of matlab "overlayVolume" display

我正在研究卷,我有一个面具和一个 CTMEP。面罩可以定位肿瘤。 起初,我想找到一种方法来叠加我的两本书,以便我发现: http://www.mathworks.com/matlabcentral/fileexchange/39460-overlayvolume/content/overlayVolume.m

我试过了,但我对出现的 3 个数字不满意。 事实上,显示器太暗了,我无法区分器官的不同部分。我不知道我必须修改哪个参数才能看到我的器官。一开始我以为是因为我在 HU 中,但即使在灰度中我也看不到任何东西。我加一张我看到的图片。

感谢您的帮助。

这里是link。

这完全取决于如何在 overlayVolume 中调用绘图函数。

当您使用 imshow(I) 时,它针对不同类型的数据表现不同。

如果您的数据是 uint8imshow 将假定它在 0-255 范围内。如果您的数据是 uint16,它将假定它是 0-65535。这意味着它将为 65535 绘制白色,为 0 绘制黑色。

如果您的数据是双精度的,imshow(I) 将假定它在 0-1 范围内(因此将图像转换为双精度并除以其最大值将正确绘制它)。

在您的案例中,您正在处理 X 射线图像。通常,在这种类型的数据中,由于您需要的分辨率,您需要存储在 uint16 类型中的值,但您通常不会使用整个范围,因为图像是由数学算法创建的。您的最大值是 4071,它更接近黑色 (0) 而不是白色 (65535),因此几乎所有内容都以黑色或深灰色绘制。将其转换为 double 并将其置于 0-1 范围内即可解决问题。

如果函数 imshow() 不在其他人创建的 class 中,但您将其放入代码中,我的建议会有所不同。 imshow 接受范围作为输入,因此您可以 imshow(I,[0 4071]) 强制 4071 为 "white"。更一般地说,你可以做imshow(I,[min(I(:) max(I(:)]),或者等效的调用(更简洁)imshow(I,[])