主要内容

Bwmorph3.

二元体积的形态学操作

描述

例子

j= bwmorph3(V.手术应用字符串或字符向量指定的形态操作手术到二元卷V.Bwmorph3.以逻辑卷返回操作的结果j

例子

全部收缩

加载3-D MRI体积数据并创建二进制卷。用volshow.查看体积数据。

加载马士克;BW1 = MRISTACK> 127;Volshow(BW1);

要删除设置为1的体素并且也被设置为0的体素包围,请执行'干净的'在体积数据上操作。当确定要移除哪个体素时,'干净的'操作考虑26个邻近的体素。用volshow.查看结果。

BW2 = BWMORPH3(BW1,'干净的');Volshow(BW2);

为了比较,执行“多数'在体积数据上操作。这 '多数'操作对“”执行类似的任务干净的'操作但仅在目标体素附近的体素(大多数)设置为1.确定留下哪个体素,“多数'操作还考虑26个邻近的体素。用volshow.查看结果。

BW3 = BWMORPH3(BW1,'多数');Volshow(BW3);

此示例显示了如何支持的每个形态操作金宝appBwmorph3.在简单的卷上工作。

在其中心制作9×9×3长方体,其中包含3×3×3立方体的中心。

Innercube =那些(3,3,3);Cube_Center = PadArray(Innercube,[3 3],0,'两个都'
cube_center = cube_center(:,:,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 1 1 0 0 0 0 0 0 01 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_center(:,:2)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_center(:,:3)= 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

用删除操作关闭像素

将内部立方体的中心体素设置为0.使用'消除'手术。此操作设置任何值的值'在'voxel完全包围'在'体素到'离开'

remove_center = bwmorph3(cube_center,'消除'
remove_center =9x9x3逻辑阵列Remove_Center(:,:,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 11 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 remove_center(:,:,2)= 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 remove_center(:,:3)= 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

将像素设置为填充操作

将内部立方体的中心体素设置为1使用'填'手术。此操作设置任何值的值'离开'voxel完全包围'在'体素到'在'

fill_center = bwmorph3(remove_center,'填'
fill_center =.9x9x3逻辑阵列fill_center(:,:,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 1 1 0 0 0 0 0 0 0 1 11 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fill_center(:,:2)= 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0填充_Center(:,:3)= 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

使用清洁操作删除未连接的像素

使用'干净的'操作以去除设置为的任何杂散血管素1但没有连接到卷中的组件。该示例通过将第二个平面上的随机体素设置为1,然后使用'干净的'删除它的操作。

cube_center(2,2,2)= 1
cube_center = cube_center(:,:,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 1 1 0 0 0 0 0 0 01 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_center(:,:2)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_center(:,:3)= 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
cube_cleaned = bwmorph3(cube_center,'干净的'
cube_cleaned =9x9x3逻辑阵列cube_cleaned(:,:,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 11 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_cleaned(:,:2)= 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_cleaned(:,:3)= 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

找到大多数人

找到大部分cube_center.使用 '多数'手术。仅当体素周围的26连接的邻域中的体素的超过一半(大多数)被设置为时,该操作才保留了voxel1

cube_major = bwmorph3(cube_center,'多数'
cube_major =.9x9x3逻辑阵列cube_major(:,:,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 upe_major(:,:2)= 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 upe_major(:,:3)= 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

创建类似于骨架的形状

为了说明分支点和结束点选项,创建另一个小矩阵,这次用线性形状,就像骨架一样。

x1 =眼睛(5);x2 =零(5);X2(3,3)= 1;x3 = x2;形状=猫(3,x1,x2,x3)
形状=形状(:,1)= 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1形状(:,2)= 0 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0形状(:,:3)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0

找到终点

使用该形状的终点'终点'手术。形状具有三个终点,在第一平面中对角线的每个端部,在第三平面上通过中心的线的末端。

shape_endpts = bwmorph3(形状,'终点'
shape_endpts =.5x5x3逻辑阵列shape_endpts(:,:,1)= 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 shape_endpts(:,:2)= 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0形状_endpts(:,:3)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0.

寻找分支点

使用该发现形状的分支点'Branchpoints'手术。形状具有单个分支点,其中对角线和水平线相遇。

shape_brpts = bwmorph3(形状,'Branchpoints'
shape_brpts =.5x5x3逻辑阵列shape_brpts(:,:,1)= 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0形状_BRPTS(:,2)= 0 0 0 0 0 0 00 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0形状_BRPTS(:,3)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0.

输入参数

全部收缩

输入卷,指定为数字或逻辑阵列。对于数字输入,任何非零像素被认为是1真的)。

Bwmorph3.接受1-D,2-D或3-D阵列。如果指定1-D或2-D输入阵列,那么Bwmorph3.执行为3-D卷定义的形态操作。如果您想要2-D行为,请使用BWMORPH.反而。

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|UINT64|逻辑

形态学操作执行,指定为以下字符向量之一或字符串标量。对于这些操作的例子,请参阅形态学作业的插图

手术

描述

插图

'Branchpoints'

查找骨骼的分支点。分支点是多个分支机构相遇的交界处的体素。

要查找分支点,则映像必须易于批量。创建骨架化图像,使用Bwskel.

'干净的'

去除隔离的体素,将它们设置为0.孤立的体素是一个单独的26连接的体素,设置为1被voxels被设置为的0.

'终点'

找到骨骼的终点。端点是分支末端的体素。

注意:要查找终点,则必须批量映像。创建骨架化图像,使用Bwskel.

'填'

填充孤立的内部体素,将它们设置为1。孤立的内部体素是设置为的个体体素0.被voxels设置为包围(6连接的)1

'多数'

保持voxel设置为1如果它的3×3×3,26个连接的邻域中的14个或更多的体素(大多数)设置为1;否则,将体素设置为0.

形态学作业的插图

'消除'

去除内部体素,将其设置为0.。内部体素是设置为的单个体素1被voxels设置为包围(6连接的)1

数据类型:char|细绳

输出参数

全部收缩

在形态操作后的卷,作为输入卷相同的逻辑阵列返回V.

提示

  • 为了在3-D卷上进行形态操作侵蚀或扩张,使用imerode或者混合函数,指定结构元素那些(3,3,3)

  • 在3-D卷上执行形态关闭,开口,顶帽滤波或底帽滤波,使用快到了伊莫登Imtophat., 或者Imbothat.函数,指定结构元素那些(3,3,3)

在R2018A介绍