Filter löschen
Filter löschen

Determining new x,y location of an object

1 Ansicht (letzte 30 Tage)
Sara
Sara am 28 Nov. 2012
If I know the original x,y location of an object, then move it randomly to a different point on an image, how can I determine it's new x,y location?
  2 Kommentare
John Petersen
John Petersen am 29 Nov. 2012
If you moved it, just remember where you moved it to.
Jan
Jan am 30 Nov. 2012
@Sara: Most likely the problem gets clear, when you post the relevant part of the code.
Of course the information where the parts of the scrambled image are located afterwards are available in your program already. But we cannot guess where or in which format.

Melden Sie sich an, um zu kommentieren.

Antworten (3)

Image Analyst
Image Analyst am 29 Nov. 2012
  1 Kommentar
Image Analyst
Image Analyst am 29 Nov. 2012
If you move the object by deltaX and deltaY, then obviously the new location is
newX = startingX + deltaX;
newY = startingY + deltaY;
Needless to say, it's new position is (newX, newY). But this is way way too obvious (you wouldn't have even asked about something so trivial and simple) so we must have misunderstood your question. Can you try to describe it in more detail this time?

Melden Sie sich an, um zu kommentieren.


Sara
Sara am 29 Nov. 2012
The object is moved via code. It is moved to a random location on the image.
  5 Kommentare
Sara
Sara am 30 Nov. 2012
Here is my code. I am not sending one tile to the same new location each time. What you say makes sense, I'm just not sure how that works with this:
A=mat2cell(image,[384,384],[256,256,256,256],[3]);
B=randperm(8);
C=reshape(B,2,4);
D=mat2cell(C,[1,1],[1,1,1,1]);
[row,col]=find(C==1)
D(row,col)=A(1,1)
[row,col]=find(C==2)
D(row,col)=A(1,2)
[row,col]=find(C==3)
D(row,col)=A(1,3)
[row,col]=find(C==4)
D(row,col)=A(1,4)
[row,col]=find(C==5)
D(row,col)=A(2,1)
[row,col]=find(C==6)
D(row,col)=A(2,2)
[row,col]=find(C==7)
D(row,col)=A(2,3)
[row,col]=find(C==8)
D(row,col)=A(2,4)
scram=cell2mat(D); fig3=figure('Visible','on'); imshow(scram)
Sara
Sara am 30 Nov. 2012
Bearbeitet: Sara am 30 Nov. 2012
the intial location of the pedestrian is located in an excel file that i upload, and I am running this for about 500 images.

Melden Sie sich an, um zu kommentieren.


John Petersen
John Petersen am 30 Nov. 2012
You know which cell in A that the pedestrian is located, right? Say it's the A(r,c) cell. Then,
ped = (c-1)*2 + r; % location of the pedestrian in A strung out,
% i.e. A(ped) = A(r,c)
B=randperm(8);
C=reshape(B,2,4);
D=mat2cell(C,[1,1],[1,1,1,1]);
for i=1:8
[row,col]=find(C==i) % move tile i to row,col
D(row,col)=A(i); % Build new image
if (C(i)==ped)
Row_newped = row; %FOUND PEDESTRIAN in New image
Col_newped = col;
end
end
There's probably a more efficient code that doesn't require a loop, but this should be clear to you so you understand the idea.
  1 Kommentar
Sara
Sara am 3 Dez. 2012
I apologize to everyone for being unclear. I am teaching myself Matlab and I appreciate everyone's help with this.
@John - Thank you for your post, I understand now what I need to do.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics Object Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by