gpt4 book ai didi

java - vtkImageViewer2 - 更改体积数据切片间距值

转载 作者:行者123 更新时间:2023-12-01 10:43:14 25 4
gpt4 key购买 nike

我想更改 dicom 体积数据的切片厚度。我在用着vtkImageViewer2。

例如,原始数据间距为2,有200个切片,当我将切片厚度值更改为 4 我必须看到 100 个切片。

Original:  1,2,3,4,5...
Modified: 1, 2, 3...

我的代码:

if ((modif & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {

etat = 1;
int nb0 = imageViewer.GetSlice() + 1;
int nb1 = imageViewer.GetSlice() - 1;
int totSlice = imageViewer.GetSliceMax() + 1;

if (p1.y > p2.y) {

String Newligne=System.getProperty("line.separator");
cornerAnnotation.SetText(0,"Slice:" + (nb0 + 1) + "/" + totSlice+Newligne+"Zoom: "+(int)(100)+"%"+Newligne+ "C:" + windowhight + " / W:" +windowlevel+ Newligne+"Pixel:("+xs+":"+ys+")"+Newligne+reader.GetModality()+"("+reader.GetOutput().GetDimensions()[0]+"*"+reader.GetOutput().GetDimensions()[1]+")"+"-Axial"+Newligne);

imageViewer.SetSlice(nb0);
scrollBar.setValue(imageViewer.GetSlice());

} else {

String Newligne=System.getProperty("line.separator");

cornerAnnotation.SetText(0,"Slice:" + (nb1 + 1) + "/" + totSlice+Newligne+"Zoom: "+(int)(100)+"%"+Newligne+ "C:" + windowhight + " / W:" +windowlevel+ Newligne+"Pixel:("+xs+":"+ys+")"+Newligne+reader.GetModality()+"("+reader.GetOutput().GetDimensions()[0]+"*"+reader.GetOutput().GetDimensions()[1]+")"+"-Axial"+Newligne);

imageViewer.SetSlice(nb1);
scrollBar.setValue(imageViewer.GetSlice());

}

}

最佳答案

如果您实际更改 DICOM 属性中的切片厚度,您可能还必须更改图像位置(患者)和切片位置 DICOM 属性,以保持图像体积一致。

如果您只是尝试根据一定距离移动切片(例如,单击一次 = 4 毫米而不是 2 毫米),则跟踪切片的位置而不是切片编号。当位置发生变化时,计算新位置的新切片并更新到该切片。这也将带来更大的灵 active 。

如果您真的只想每隔一个切片执行一步,那么为什么不只使用 nb0 = getSlice() + 2 和 nb1 = getSlice() -2 呢?

关于java - vtkImageViewer2 - 更改体积数据切片间距值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34336730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com