finding the co-ordinates

I have a matrix as
S=[0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0
0 0 0 1 1 1 1 0 0 0 0]
in this i want to find the position of ones so that i can draw the bounding box over ones please help how to processs

 Accepted Answer

st = regionprops(S, 'BoundingBox' )
eg:
z = randi(15,size(S))
ij = ceil(st.BoundingBox);
out = z(ij(2) + (0:ij(4)-1),ij(1) + (0:ij(3)-1))
added after the Kash's comment
Img = imread('Q8vjJ.png');
BW = im2bw(Img,graythresh(Img));
BW(:,1) = false;
BW2 = cumsum(BW,2) & fliplr(cumsum(BW(:,end:-1:1),2));
BW2 = cumsum(BW2) & flipud(cumsum(BW2(end:-1:1,:)));
st = regionprops(SBW2, 'BoundingBox' );
imcrop(Img,st.BoundingBox + [-1 -1 1 1]);

3 Comments

kash
kash on 25 Apr 2012
Thanks andrei i get as
st =
BoundingBox: [3.5000 1.5000 4 5]
S is an matrix of an image i have just given few rows and columns ,now hoew to draw the boundingbox over thode region i.e white region in image
kash
kash on 25 Apr 2012
Andrei i get error
Error using ==> ceil
Too many input arguments.
for my image
http://imgur.com/Q8vjJ
please help
kash
kash on 25 Apr 2012
I need just a bounding box over the white regions (i.e) the text,but the image is cropped .i dont want to crop the image just a bounding box over it

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!