bwmorph3
二进制卷的形态运算
语法
J = bwmorph3(V,运算)
描述
例子
比较bwmorph3的Clean操作和Majority操作
加载3-D MRI体积数据并创建二进制体积。使用Volume Viewer应用程序查看体积数据。
负载mristack;BW1 = mristack > 127;
若要删除设置为1且被设置为0的体素包围的体素,请执行“清洁”
对容量数据的操作。在确定要删除哪些体素时,“清洁”
操作考虑26个相邻的体素。您可以使用Volume Viewer应用程序查看结果。
BW2 = bwmorph3(BW1,“清洁”);
为了进行比较,请执行'大多数的
对容量数据的操作。“大多数的
操作执行类似于'干净的
操作,但仅在目标体素附近超过一半(大多数)的体素被设置为1时才保留体素。当决定保留哪些体素时,大多数的
操作还考虑26个相邻的体素。您可以使用Volume Viewer应用程序查看结果。
BW3 = bwmorph3(BW1,“大多数”);
形态学运算图解
此示例显示了如何支持的每个形态操作万博1manbetxbwmorph3
适用于简单卷。
做一个9 × 9 × 3的0长方体,它的中心是一个3 × 3 × 3的1立方体。
Innercube = ones(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 1 1 1 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 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 1 1 1 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 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 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 0 0 0 0 0 0 1 1100000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
用移除操作关闭像素
将内部立方体的中心体素设置为0
使用“删除”
操作。此操作设置any的值“上”
体素完全被包围“上”
体素,“关闭”。
Remove_center = bwmorph3(cube_center,“删除”)
remove_center =9x9x3逻辑数组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 1 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
使用填充操作将像素设置为On
将内部立方体的中心体素设置为1
使用“填满”
操作。此操作设置any的值“关闭”
体素完全被包围“上”
体素,“上”
.
Fill_center = bwmorph3(remove_center,“填满”)
fill_center =9x9x3逻辑数组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 1 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
使用Clean操作移除未连接的像素
使用“清洁”
操作以删除设置为的任何杂散体素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 1 1 1 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 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 1 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 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 (:,:, 3) = 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 1 1 1 0 0 0 0 0 0 1 1100000000 0 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逻辑数组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 1 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
使用'大多数的
操作。只有当体素周围26个连接的邻域中超过一半(大多数)的体素被设置为时,该操作才会保留体素1
.
Cube_major = bwmorph3(cube_center,“大多数”)
cube_major =9x9x3逻辑数组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 0 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 0 0 0 0 0 0 0 0
创建一个类似于骨架的形状
为了说明分支点和端点选项,创建另一个小矩阵,这次是线性形状,就像骨架一样。
X1 =眼睛(5);X2 = 0 (5);X2 (3,3) = 1;X3 = x2;Shape = cat(3,x1,x2,x3)
形状=形状(:,:1)= 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1形状(:,:2)= 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0形状(:,:,3)= 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
找到终点
方法查找形状的端点“端点”
操作。该形状有三个端点,一个在第一个平面对角线的两端,另一个在第三个平面通过中心的直线的末端。
Shape_endpts = bwmorph3(形状,“端点”)
shape_endpts =5x5x3逻辑数组1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
寻找分支点
方法查找形状的分支点的分歧点
操作。该形状只有一个分支点,即对角线和水平线相交的地方。
Shape_brpts = bwmorph3(形状,的分歧点)
shape_brpts =5x5x3逻辑数组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
输入参数
V
- - - - - -输入量
实数组、非稀疏数组、数字数组或逻辑数组
输入卷,指定为实数、非稀疏、数字或逻辑数组。bwmorph3
接受1-D, 2-D或3-D数组。如果指定1-D或2-D输入数组,bwmorph3
执行为3-D卷定义的形态操作。如果你想要二维的行为,使用bwmorph
代替。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
操作
- - - - - -进行形态学操作
特征向量|字符串标量
要执行的形态操作,指定为以下字符向量或字符串标量之一。有关这些操作的示例,请参见形态学运算图解.
操作 |
描述 |
插图 |
---|---|---|
|
找到骨架的分支点。分支点是多个分支相交处的体素。 为了找到分支点,必须对图像进行骨架化。要创建骨架化图像,请使用 |
|
|
删除孤立的体素,将它们设置为0。孤立体素是一个单独的、26连接的体素,被设置为 |
|
|
找到骨架的终点。端点是分支末端的体素。 注意:为了找到端点,必须对图像进行骨架化。要创建骨架化图像,请使用 |
|
|
填充孤立的内部体素,将它们设置为 |
|
|
保持体素设置为 |
看到形态学运算图解. |
|
删除内部体素,将其设置为 |
|
数据类型:字符
|字符串
输出参数
J
-输出量
逻辑阵列
输出卷,作为逻辑数组返回。
提示
在R2018a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。