主要内容

从3 d胸部扫描肺段

这个例子展示了如何使用积极执行三维分割轮廓(蛇)。您可以查看结果使用查看器应用程序。

准备数据

人的胸部CT扫描数据装载到工作区。要运行这个例子,您必须下载样例数据从MathWorks™使用附加的探险家。看到安装示例数据使用附加的探险家

负载chestVolume
名字大小字节V 512 x512x318 166723584 int16类属性

CT扫描数据转换int16规范化的价值区间[0,1]。

V = im2single (V);

视图胸部扫描使用体积查看器应用程序。开放的应用MATLAB®应用程序将来发布。你也可以打开应用程序使用volumeViewer命令并指定卷作为参数:volumeViewer (V)。体积观众已经预设alphamaps旨在提供最好的某些类型的数据的视图。最好的胸部扫描视图,选择ct-bone预设。

段肺

段肺部CT扫描数据使用活动轮廓技术。活跃的轮廓是一个区域增长算法需要初始种子点。示例使用图像裂殖体应用程序创建这个种子面具分割两个正交二维片,一个在XY平面上,另一个在XZ平面。然后插入两个分割成3 d的例子的面具。通过这面具的例子activecontour函数创建一个3 d的肺部分割胸腔。(下面的例子使用了活动轮廓的方法,但你可以使用其他细分技术达到了同样的目的,如flood-fill。)

提取中心片在XY和XZ维度。

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

查看二维片使用imshow函数。

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

imshow (XZ [],“边界”,“紧”);

您可以执行的分割图像裂殖体应用。打开应用MATLAB应用程序将来发布或使用imageSegmenter命令,指定一个二维切片作为参数,imageSegmenter (XY)

分割过程开始,点击阈值打开的肺片阈值选项卡。在阈值选项卡上,选择手动阈值选择和移动滑块的阈值来指定一个阈值,达到良好的肺部分割。点击创建面具接受阈值并返回分割选项卡。

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

BW = XY > 5.098000 e-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创建种子面具和肺段

创建三维种子面具,你可以使用activecontour肺功能段。

创建一个逻辑三维体积相同的大小作为输入量和插入mask_XYmask_XZ在适当的空间位置。

掩码= false(大小(V));面具(:,:,160)= maskedImageXY;面具(256年:,)=面具(256年:,:)|重塑(maskedImageXZ [1512318]);

使用这个3 d种子面具,部分肺在使用活动轮廓的三维体积的方法。这个操作可以花几分钟。得到一个质量分割,使用histeq在可用范围内传播体素值。

V = histeq (V);BW = activecontour (V,面具,100,“Chan-Vese”);segmentedImage = v *单(BW);

您可以查看分割肺体积查看器应用程序通过运行命令volumeViewer (segmentedImage)。通过操纵alphamap设置在呈现编辑器中,你可以得到一个好的视图的肺。

计算的体积分割肺

使用regionprops3函数与“体积”选择计算肺的体积。

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

指定的体素的间距x,y,z收集的维度,这是原始文件的元数据。图像数据的元数据不包括你下载的插件的探险家。

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

另请参阅

||