从3-d胸部扫描段肺

此示例示出了如何执行使用主动轮廓(蛇)3-d的分割。您可以查看使用卷浏览器应用程序的结果。

准备数据

装载人工胸部CT扫描数据到工作区。要运行这个例子,你必须从MathWorks公司™使用的Add-On浏览器下载的样本数据。看到安装示例数据使用的Add-On资源管理器

加载chestVolume谁是
名称大小字节类属性V 512x512x318 166723584 INT16

从转换CT扫描数据INT16将这些值归一化到[0,1]的范围内。

V = im2single(V);

查看使用卷浏览器应用的胸部扫描。打开从MATLAB®应用工具条的应用程序。您也可以通过打开应用程序volumeViewer命令并指定体积作为参数:volumeViewer(V)。体积查看器具有旨在提供某些类型的数据的最佳视图预设alpha贴图。为了让胸部扫描的最佳视图中,选择CT-骨预设。

段肺

段使用主动轮廓技术在CT扫描数据中的肺部。主动轮廓是一个区域生长算法,需要初始种子点。该示例使用图像分段应用程序通过分割两个正交2-d片,一个在XY平面内,而另一个在XZ平面中创建这个种子掩膜。然后,该示例插入这两个分割成3 d掩模。的例子中通过这个掩模的activecontour函数来创建在胸腔肺的3-d的分割。(本例使用主动轮廓方法,但你可以使用其他的分割技术来完成同样的目标,如洪水填充。)

提取在XY和XZ尺寸两个中心片。

XY = V(:,:,160);XZ =挤压(V(256,:,:));

查看使用2-d片imshow功能。

图imshow(XY,[],'边界''紧');

imshow(XZ,[],'边界''紧');

您可以执行在图像分段应用的分割。从MATLAB应用程序工具条,打开应用程序或使用imageSegmenter命令,指定2-d切片作为参数,imageSegmenter(XY)

要开始分割过程,单击打开的肺切片标签。在阈值选项卡,选中手工阈值选择并移动阈值滑块指定达到润肺的良好分割的阈值。请点击创建规则接受阈值,并返回分割标签。

该应用程序执行以下的代码,以阈值的图像。

BW = XY> 5.098000e-01;

这个最初的肺分割后,使用上的选项清理面膜瑞风面膜菜单。

在应用中,你可以点击每个选项反转掩模图像,使肺部都处于前景(反相蒙版),删除其它的分段元件除了肺(边界清晰肺分割内部),和填孔(补洞)。最后,使用形态学选项以平滑肺分割的边缘。在形态选项卡,选择侵蚀面膜操作。执行这些步骤后,选择显示二进制和掩模图像保存到工作空间。

该应用程序执行以下代码细化面具。

BW = imcomplement(BW);BW = imclearborder(BW);BW = imfill(BW,“洞”);半径= 3;分解= 0;SE = strel(“盘”,半径,分解);BW = imerode(BW,SE);maskedImageXY = XY;maskedImageXY(〜BW)= 0;imshow(maskedImageXY)

在XZ片执行相同的操作。使用加载图像,选择XZ变量。使用阈值处理进行肺部的初始分割。对于XZ片时,全局阈值选项创建适当的分割(调用imbinarize在下面的代码)。由于与XY片,使用上的选项瑞风面膜菜单来创建肺部的抛光分割。在形态学标签上的侵蚀操作,指定的13的半径,以除去小无关物体。

来分割XZ切片和抛光的结果,该应用程序执行以下的代码。

BW = imbinarize(XZ);BW = imcomplement(BW);BW = imclearborder(BW);BW = imfill(BW,“洞”);半径= 13;分解= 0;SE = strel(“盘”,半径,分解);BW = imerode(BW,SE);maskedImageXZ = XZ;maskedImageXZ(〜BW)= 0;imshow(maskedImageXZ)

创建籽面膜和肺段使用activecontour

创建3-d籽面膜,你可以用用activecontour功能分割肺部。

创建逻辑3- d体积的大小与输入体积和插入相同mask_XYmask_XZ在适当的空间位置。

掩模=假(大小(V));掩模(:,:,160)= maskedImageXY;掩模(256,:,:) =掩模(256,:,:) |重塑(maskedImageXZ,[1512318]);

使用该3-d种子掩膜,段使用动态轮廓方法在3 d体积肺部。此操作可能需要几分钟的时间。为了获得高质量的分割,利用histeq超过可用范围蔓延体素值。

V = histeq(V);BW = activecontour(V,掩模,100,“赞Vese”);segmentedImage = V. *单(BW);

您可以通过运行以下命令查看卷查看器应用程序分割的肺volumeViewer(segmentedImage)。通过操纵在渲染编辑器的alpha贴图设置,你可以得到的只是肺部的一个很好的观点。

计算分段肺部卷

使用regionprops3与功能'体积'选项来计算肺的体积。

volLungsPixels = regionprops3(逻辑(BW),'体积');

指定要在所述体素的间距Xÿž尺寸,这是从原始文件的元数据收集。元数据是不包含在图像数据您从附加在资源管理器中下载。

spacingx = 0.76;spacingy = 0.76;spacingz = 1.26 * 1E-6;unitvol = spacingx * spacingy * spacingz;volLungs1 = volLungsPixels.Volume(1)* unitvol;volLungs2 = volLungsPixels.Volume(2)* unitvol;volLungsLiters = volLungs1 + volLungs2
volLungsLiters = 5.7726

也可以看看

||