obliqueslice
从三维体数据中提取斜切片
描述
例子
从三维体数据中提取斜切片
将3d体积数据集加载到工作空间中。
负载核磁共振成像
方法删除单例维度挤压
函数。
V =紧缩(D);
控件显示数据的水平切片蒙太奇
函数。
蒙太奇(V,地图,“大小”9 [3]);
指定卷中的一个点,以便片通过。
点= [73 50 15.5];
在三维坐标空间中指定一个法向量。
Normal = [0 15 20];
从体积数据中提取一个切片。切片垂直于法向量,并通过指定的点。
[B, x, y, z] = obliqueslice (V,点,正常);
在三维坐标空间中显示提取的切片。
图冲浪(x, y, z, B,“EdgeColor”,“没有”,“HandleVisibility”,“关闭”);网格在View ([- 3812]) colormap(gray) xlabel(“轴”) ylabel (“轴”);zlabel (z轴的);标题(“三维坐标空间中的切片”)
画出点和法向量。
持有在plot3(点(1),(2),(3),”或“,“MarkerFaceColor”,“r”);plot3(点(1)+(1)][0正常,点(2)+(2)][0正常,点(3)+正常(3)[0],...“- b”,“MarkerFaceColor”,“b”);持有从传奇(“体积中的点”,的法向量)
在图像平面上显示提取的切片。
图imshow (B,[])标题(“图像平面切片”)
沿法向量提取多个切片
将3d体积数据集加载到工作空间中。
s =负载(fullfile (toolboxdir (“图片”),“imdata”,“BrainMRILabeled”,“图片”,“vol_001.mat”));V = s.vol;
控件显示数据的水平切片蒙太奇
函数。
蒙太奇(V,“指标”12:118,“大小”12 [8],“DisplayRange”[]);
在三维坐标空间中指定平面的法向量。
Normal = [20 0 10];
沿着法向量的方向提取多个切片为
循环。在每个迭代中:
指定一个切片必须经过的点。
提取片,指定输出大小
“全部”
填充像素的填充值为255。提取的切片垂直于法向量,并通过指定的点。显示提取的切片。
sliceIdx = 10:5:180;数字为s = 1:length(sliceIdx) pt = [sliceIdx(s) 150 80];[B, x, y, z] = obliqueslice (V, pt,正常,“OutputSize”,“全部”,“FillValues”, 255);Bslices (:,:, s) = B;在三维坐标空间中显示切片次要情节(“位置”,[0.11 0.36 0.38 0.5]) surf(x,y,z,B,“EdgeColor”,“没有”,“HandleVisibility”,“关闭”);网格在View ([-24 12]) colormap(gray) xlabel(“轴”) ylabel (“轴”);zlabel (z轴的);zlim (155 [0]);ylim (250 [0]);xlim (250 [0]);标题(“三维坐标空间中的切片”)画出点和法向量。持有在pt plot3 (pt (1), (2), pt (3),”或“,“MarkerFaceColor”,“r”) plot3 (...pt(1) +(正常(1)正常(1)),...pt(2) +(正常(2)正常(2)),...pt(3) +(正常(3)正常(3)),...“- b”,“MarkerFaceColor”,“b”)传说(“体积中的点”,的法向量,“位置”,[0.1 0.12 0.3 0.08])持有从显示提取的切片。次要情节(“位置”,[0.6 0.37 0.34 0.49])“图像平面切片”)暂停(0.5);结束
方法显示提取的图像片蒙太奇
函数。
图蒙太奇(Bslices,“大小”7 [5],“DisplayRange”[]);
输入参数
V
- - - - - -输入量
三维数值数组|三维分类数组
输入体积,指定为3-D数值或3-D分类数组。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
|逻辑
|分类
点
- - - - - -体积的点
转换行向量
点,指定为形式为[的3元素行向量pxpypz].
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
正常的
- - - - - -法向量
转换行向量
法向量,指定为形式为[的3元素行向量一个
b
c
].法向量是垂直于一个面或平面的向量。
为了提取一个正交切片,你可以将法向量设置为以下值之一:
[1 0 0] -在yz飞机。
[0 1 0] -在xz飞机。
[0 0 1] -在xy飞机。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:obliqueslice (V,点,正常,“OutputSize”,“满”)
方法
- - - - - -插值法
“线性”
|“最近的”
插值方法,指定为逗号分隔对组成“方法”
其中一个价值观是:
“线性”
——线性插值“最近的”
-最近邻插值
如果V
是数值,插值方法默认为“线性”
但也可以指定为“最近的”
.如果V
是绝对的,那么插值方法一定是“最近的”
.
数据类型:字符
|字符串
OuputSize
- - - - - -输出图像的大小
“限制”
(默认)|“全部”
输出图像的大小,指定为逗号分隔的对,由“OutputSize”
其中一个价值观是:
“限制”
-输出图像的大小是二维切片相对于输入体积的尺寸的实际大小。如果提取的切片区域不是正方形或矩形,该函数自动用额外的像素填充提取的切片区域,以生成正方形或矩形图像。“全部”
-输出图像的大小可能不等于2-D切片的实际大小。输出图像的大小被设置为可以从输入体积相对于法向量获得的最大切片大小正常的
.为了调整图像的大小,提取的2-D切片的边界用额外的行和列填充。填充像素的填充值默认为0。你可以使用'
FillValues
'名称-值对参数来更改值。
数据类型:字符
|字符串
输出参数
B
-输出二维切片
数值矩阵|范畴矩阵
输出二维切片,作为数字或分类矩阵返回。输出切片的数据类型与输入卷的数据类型相同。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
|逻辑
|分类
x
- - - - - -x输出切片的-坐标
数字矩阵
x-三维体中输出切片的坐标,作为与输出切片大小相同的数字矩阵返回,B
.
数据类型:单
y
- - - - - -y输出切片的-坐标
数字矩阵
y-三维体中输出切片的坐标,作为与输出切片大小相同的数字矩阵返回,B
.
数据类型:单
z
- - - - - -z输出切片的-坐标
数字矩阵
z-三维体中输出切片的坐标,作为与输出切片大小相同的数字矩阵返回,B
.
数据类型:单
更多关于
斜切
给定的一个点(px,py,pz)法向量(一个,b,c),函数解平面方程一个(x-px) +b(y-py) +c(z-pz) = 0
这一点(px,py,pz)在于体积数据。切片平面垂直于法向量,并通过给定的点。
从三维坐标空间到图像平面的映射
在三维空间中提取的切片的坐标映射到二维平面的顺序取决于其相对于水平面和垂直线面的倾斜角。
的obliqueslice
函数返回输出矩阵x
,y
,z
包含了x,y,z构成图像切片的三维坐标空间中的点的坐标。的obliqueslice
函数插值这些点的强度值,并将其映射到二维平面。输出矩阵中的第一个值x(1, 1),y(1, 1),z(1,1)指定映射为图像平面左上角像素(1,1)的点的三维坐标。从这一点开始,按照从左到右、从上到下的扫描顺序读取构成图像切片的3-D坐标以及相关的强度值。这些强度值以从左到右、从上到下的扫描顺序填充二维图像平面。
假设V是否输入体积数据和B为输出的二维图像,则B(我,j) =V(一个,b,c).
在那里,一个=x(我,j),b=y(我,j),c=z(我,j).
扩展功能
线程环境
在后台使用MATLAB®运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
介绍了R2020aR2022b:支持基于线程的环境
obliqueslice
现在支持基于线程的环境。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。