finding interior region

1 view (last 30 days)
Mohammad Golam Kibria
Mohammad Golam Kibria on 21 Jun 2011
Hi I have the following code and have some output as follows:
I =
0 1 1 1 1 1 0
1 0 0 0 0 0 1
1 0 1 1 1 0 1
1 0 1 1 1 0 1
1 0 0 0 0 0 1
0 1 1 1 1 1 0
K>> boundary = bwboundaries(I,8,'noholes'); K>> boundary
boundary =
[19x2 double]
[ 7x2 double]
here is two boundary, I need to know how to determine which boundary is interior, Here [ 7x2 double] is in interior region of [19x2 double]. How to determine that easily?
Can anybody help?
Thanks

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 21 Jun 2011
>> [B,L] = bwboundaries(I,8,'noholes')
B =
[19x2 double]
[ 7x2 double]
L =
0 1 1 1 1 1 0
1 0 0 0 0 0 1
1 0 2 2 2 0 1
1 0 2 2 2 0 1
1 0 0 0 0 0 1
0 1 1 1 1 1 0
>>
B{1} -> label 1 (L == 1)
B{2} -> label 2 (L == 2)
EDIT 2
>> [B,L,N,A] = bwboundaries(I,8,'noholes')
B =
[19x2 double]
[ 7x2 double]
L =
0 1 1 1 1 1 0
1 0 0 0 0 0 1
1 0 2 2 2 0 1
1 0 2 2 2 0 1
1 0 0 0 0 0 1
0 1 1 1 1 1 0
N =
2
A =
(2,1) 1
>> full(A)
ans =
0 0
1 0
Having label 2 (number row A = 2) inside label 1(column number 1of matrix A)
  3 Comments
Andrei Bobrov
Andrei Bobrov on 21 Jun 2011
Dear Mohammad! Please reading help function 'bwboundaries'.
Mohammad Golam Kibria
Mohammad Golam Kibria on 22 Jun 2011
Thanks, Now It is clear

Sign in to comment.

More Answers (1)

Sean de Wolski
Sean de Wolski on 21 Jun 2011
You could also do an
Ibwnoholes = imfill(I,'holes');
which will fill the holes and then that boundary won't show up.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!