3D matrix representation problem
1 回表示 (過去 30 日間)
古いコメントを表示
Hello, I asked before similar to my question and some programmers helped me to solve my problem. Actually I thought that they solved my problem but unfortunately I detected one error in their code. Let me firstly explain the question to be clear to all of you. The question is how can I give each chain an individual number that can be distinguished from the other.? What do I mean by a chain? Answer: I will explain that after the matrix to be clear to all of you. The 3D Matrix is:
U3(:,:,1) = [
0 , 0 , 0 , 0 , 0;
0 , 0 , 0 , 0 , 0;
0 , 1 , 0 , 0 , 1;
0 , 0 , 0 , 0 , 1;
0 , 0 , 0 , 0 , 0
];
U3(:,:,2) = [
0 , 0 , 0 , 0 , 0;
0 , 0 , 0 , 0 , 0;
0 , 1 , 0 , 0 , 1;
0 , 1 , 0 , 0 , 0;
0 , 1 , 0 , 0 , 0
];
U3(:,:,3) = [
0 , 0 , 0 , 0 , 0;
0 , 0 , 0 , 0 , 0;
0 , 1 , 0 , 0 , 0;
0 , 0 , 0 , 0 , 1;
0 , 0 , 0 , 0 , 1
];
Now I will explain the meaning of the chain(s):
The first chain is: U3(3,2,1) and U3(3,2,2)and U3(4,2,2) and U3(5,2,2)and U3(3,2,3)
The second chain is: U3(3,5,1) and U3(4,5,1) and U3(3,5,2)
The third chain is: U3(4,5,3) and U3(5,5,3)
How can I give each chain a similar individual number?
(i.e).
U3(3,2,1) and U3(3,2,2)and U3(4,2,2) and U3(5,2,2)and U3(3,2,3)=2
U3(3,5,1) and U3(4,5,1) and U3(3,5,2)=3
U3(4,5,3) and U3(5,5,3)=4
One of the suggested solutions is to use :
CC = bwconncomp(U3);
labelmatrix(CC)
But this function is not valid for my case because it gives the first chain individual number (which is fine), and combined the second and third chains in one number (which is not fine)
See the output (which is wrong not as I want).
CC = bwconncomp(U3); labelmatrix(CC)
ans(:,:,1) =
0 0 0 0 0
0 0 0 0 0
0 1 0 0 2
0 0 0 0 2
0 0 0 0 0
ans(:,:,2) =
0 0 0 0 0
0 0 0 0 0
0 1 0 0 2
0 1 0 0 0
0 1 0 0 0
ans(:,:,3) =
0 0 0 0 0
0 0 0 0 0
0 1 0 0 0
0 0 0 0 2
0 0 0 0 2
Note: I want to check for the connectivity in 3D " any of the 6-connected neighborhood"
0 件のコメント
回答 (1 件)
José-Luis
2012 年 8 月 22 日
conn = zeros(3,3,3);
conn(2,2,:) = 1;
conn(:,2,2) = 1;
conn(2,:,2) = 1;
CC = bwconncomp(U3,conn);
Note that there might be other connectivity patterns that fulfill your conditions.
Cheers!
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Image Processing Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!