Sorting the connected component
이전 댓글 표시
I have a question in sort of connected component. I have a binary image ( onlye 0 and 1) I run the function from matlab: f=
1 0 0 1 0 0 0 1 0 0
1 1 0 1 1 1 0 0 1 0
0 0 0 0 0 0 0 1 1 1
1 0 0 0 1 0 1 0 1 1
1 1 0 0 0 0 0 1 1 1
0 0 0 1 0 0 1 0 0 0
0 0 0 1 0 1 1 0 1 1
1 1 0 0 1 0 0 0 1 0
1 1 0 1 1 1 0 1 0 0
1 1 0 0 1 0 0 0 1 0
[L num]=bwlabel(f);
suppose that they give me the ma trix:
1 0 0 4 0 0 0 5 0 0
1 1 0 4 4 4 0 0 5 0
0 0 0 0 0 0 0 5 5 5
2 0 0 0 6 0 5 0 5 5
2 2 0 0 0 0 0 5 5 5
0 0 0 5 0 0 5 0 0 0
0 0 0 5 0 5 5 0 7 7
3 3 0 0 5 0 0 0 7 0
3 3 0 5 5 5 0 7 0 0
3 3 0 0 5 0 0 0 7 0
But you can see in this resul, the order of matrix is follow the column. Now I want to change this in to the oder rows, that mean number 4 is 2 , number 5 is 3... so on. The oder is left-> right and top -> down. How can I do that ( the oder of reading )??
Thank you so much
댓글 수: 1
Zikobrelli
2014년 6월 16일
look at the functions flipud and fliplr.
L1=flipud(fliplr(L))
답변 (1개)
Jos (10584)
2014년 6월 16일
Use transpose
[L, num] = bwlabel(transpose(f))
L = transpose(L)
% or use the .' notation to transpose
댓글 수: 2
Tran Tuan Anh
2014년 6월 16일
Sean de Wolski
2014년 6월 16일
편집: Sean de Wolski
2014년 6월 16일
That's because the top of the S, L and F is higher than the lowercase letters.
You could sort the centroids of the connected components ( bwconncomp ) after calling regionprops and then reorder the output before calling labelmatrix.
카테고리
도움말 센터 및 File Exchange에서 Region and Image Properties에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

