finding pixel near border

3 views (last 30 days)
Mohammad Golam Kibria
Mohammad Golam Kibria on 10 Aug 2011
Hi, I have a matrix as follows:
I =
1 0 0 0 0 1
0 1 0 0 1 0
0 1 0 1 0 0
0 0 1 0 0 0
0 1 0 1 1 0
1 0 0 0 0 1
here 4 ones are in the total matrix boundary position. Is there any easy way that will return me the position of those pixel i.e. for this matrix (1,1),(6,1),(1,6),(6,6) thanks in advance.

Accepted Answer

Friedrich
Friedrich on 10 Aug 2011
Hi,
maybe this:
I =[
1 0 0 0 0 1
0 1 0 0 1 0
0 1 0 1 0 0
0 0 1 0 0 0
0 1 0 1 1 0
1 0 0 0 0 1 ];
[x y] = size(I);
tmp = zeros(x,y);
tmp(1,:) = ones(1,y);
tmp(x,:) = ones(1,y);
tmp(:,1) = ones(x,1);
tmp(:,y) = ones(x,1);
[i j] = find(I.*tmp == 1);
disp([i,j])
  2 Comments
Andrei Bobrov
Andrei Bobrov on 10 Aug 2011
a = eye(size(I))
a = a(:,end:-1:1)+a
a(2:end-1,2:end-1)=0
find(I & a)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!