在3D矩阵中找到大于阈值的“外部”元素

时间:2013-07-26 09:19:48

标签: matlab image-processing matrix

我想知道是否有人可以帮我提出一个3D图像代码,我现在正在研究。

我有一个简单的3D矩阵:

A(:,:,1)=

 0 7 4
 0 32 9
 4 3 1

A(:,:,2)=

 6 0 4
 3 4 6
 2 3 11

A(:,:,3)=

12 2 4
10 20 6
14 3 2

我想找到那些大于阈值的值(例如,比7更大)。但是我只想要那些外部元素,即不是“中心”元素(矩阵第一层上的32不应该被标记为最大值)

(我正在使用更大的矩阵,但我想一旦我能够从上面对小的3D矩阵进行此操作,对于较大的矩阵来说就不难了。)

非常感谢

2 个答案:

答案 0 :(得分:1)

试试这个:

A = randn(4,4,4); % data. Arbitrary size
th = 1; % threshold

ind = find(A>th);
[x y z] = ind2sub(size(A), ind);
ext = find((x==1)|(x==size(A,1))|(y==1)|(y==size(A,2))|(z==1)|(z==size(A,3)));

ind_solution = ind(ext); % linear index of desired values
solution = A(ind_solution) % desired values

答案 1 :(得分:0)

我猜你可以从这些矩阵中提取向量...所以这是获取外部向量并通过其元素循环的问题。

我认为link会帮助您提取矢量。