繁体   English   中英

选择 3D 图像中的某些切片

[英]Select certain slices in 3D image

我有一个 3D 图像,我想在该图像中选择某些切片。 因此,假设它是尺寸为 100x100x40 的 3D 图像。 我想要的是为每个维度选择一定范围内的图像强度; x=[22,39], y=[17,32], z=[26,42]。 我正在考虑一个 for 循环,它遍历图像中的所有索引,并保持每个维度范围内的强度。 关于我应该如何做到这一点的任何线索?

顺便说一句,我不能使用imcrop因为我希望我的输出图像与输入具有相同的尺寸。

编辑

我想我可以做这样的事情:

NewIndex_x = 1;
index_x = [];
for i=22:39;
    index_slice_x = find(Im(i,:,:));
    index_x(NewIndex_x) = index_slice_x;
    NewIndex_x = NewIndex_x + 1;
end

find不适用于某个范围,所以我认为我可以对所有 x、y 和 z 切片执行此操作,然后找到重叠索引。 我的 for 循环不起作用,关于如何在 for 循环中将数组正确附加到另一个数组的任何想法?

干杯!

不确定您是否想要基于 x、y、z 范围的子图像,然后将强度级别应用于该范围或其他内容。 下面的代码就是这样做的。 所以它首先获取子图像,然后为此设置强度级别过滤器。 如果这不是我们的目标,请添加一些说明。 希望这可以帮助。

% Sample data
im = round(rand(100,100,40)*255);

% Subimage that we want to process
xrange=22:39;
yrange=17:32;
zrange=26:39;

% Get all points from within the defined range
imnew = zeros(size(im));
imnew(xrange,yrange,zrange) = im(xrange,yrange,zrange);

% Now you can apply your intensity level filter if you want
min_intensity_level = 100;
imnew = imnew .* (imnew > min_intensity_level);

% At this point, imnew contains the points within the specified range that
% also exceed the minimum intensity level.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM