to draw rectangle containing motion region

1 visualizzazione (ultimi 30 giorni)
I have an image having black background and motion region that is detected is in white color. I want a matlab code to draw the rectangle over image containing all the motion regions. I have tried following code but it is giving wrong output. Plz help me with the code.. {
%for loop to get d first pixel of image having value 255
d=1;
for x=1:1:r
for y=1:1:c
if fd1(x,y)==255 %fd1 is image whose pixels we are checking
as1=x;
bs1=y;
d=0;
break;
end
if (d==0)
break;
end
end
end
}
%reverse for loop to get d last pixel of image having value 255
d=1;
for x=r:-1:1
for y=c:-1:1
if fd1(x,y)==255
ae1=x;
be1=y;
d=0;
break;
end
if(d==0)
break;
end
end
end
w=as1-ae1;
h=be1-bs1;
rectangle('Position',[as1,bs1,w,h],'EdgeColor','g','LineWidth',2)
}
  3 Commenti
Ashish Uthama
Ashish Uthama il 22 Mar 2011
+1 on the code format. From your comments, I would suggest looking at the FIND function to replace your loops.
What is 'wrong' about the output?
Karan Ratnaparkhi
Karan Ratnaparkhi il 23 Mar 2011
using above the rectangle which i am getting is nt right

Accedi per commentare.

Risposta accettata

David Young
David Young il 23 Mar 2011
I think your problem may be the classic row/column vs x/y confusion.
In an image, the first index (row index) corresponds to the y coordinate in functions like PLOT and RECTANGLE. The second index (column index) corresponds to the x coordinate.
There are various possible ways to change your code, but I'd suggest this one. Change the first two lines of the loops to this:
for y=1:1:r
for x=1:1:c
and this:
for y=r:-1:1
for x=c:-1:1
Don't change anything else! See if that helps. (I'm assuming that you are drawing the rectangle in the same axes as the image - for example by displaying the image then using HOLD ON.)
  1 Commento
Karan Ratnaparkhi
Karan Ratnaparkhi il 23 Mar 2011
hey David my prblm ws dat nly bt finally i gt it. Thnx for ur help.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Images in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by