moving an image across the screen along some vector path

조회 수: 29 (최근 30일)
Kendall Donahoe
Kendall Donahoe 2021년 4월 6일
답변: LO 2021년 4월 6일
hey Ive been trying to move an image of the avatar across the screen and can't seem to figure it out. I know how to shift the image using the identity matrix and was wondering if there was a way I could use that to make it move across the screen or any other way that it is possible. Here are some of the function names I have been using and the way that I shifted it. I have attached the image and a converter script that I used.
A= imread('avatar.jpg');
Aout=Jpeg2pointsConverter(A, 15);
plot(Aout(1,:), Aout(2,:),'b.')
[nrows, ncols]=size(Aout);
AA=[Aout; ones(1,ncols)];
S=eye(3)
>> S(1,3)=300
>> A3=S*AA;
>> hold on, plot(A3(1,:), A3(2,:),'r.')
  댓글 수: 1
DGM
DGM 2021년 4월 6일
편집: DGM 2021년 4월 6일
I have no idea what you're trying to do with this, but this whole thing
BB1=BB(:,:,1);
[M, N]= size(BB1);
BB1=double(BB1);
BB2 = 255-BB1; %Invert so white is 0 instead of 255
BB3 = (BB2 > THRESHOLD); %Any point with high value is replaced by 1, and
%any point with a low value is replaced by 0
PP=zeros(2,M*N);
cnt=0;
for ii=1:M,
for jj=1:N,
if (BB3(ii,jj)>0.5),
% this is going to return nonsense indices
% once you change the aspect ratio
PP(:,cnt+1)=[jj;N-ii];
cnt=cnt+1;
end,
end,
end
PPout = PP(:,1:cnt);
can be replaced with this
[rows cols]=find(BB(:,:,1)<(255-threshold));
PPout=[cols; rows];
I don't know why you're returning all the row indices backwards, but i guess you could still do that
[rows cols]=find(BB(:,:,1)<(255-threshold));
PPout=[cols; size(BB,1)-rows];

댓글을 달려면 로그인하십시오.

답변 (1개)

LO
LO 2021년 4월 6일
try using circshift
https://de.mathworks.com/help/matlab/ref/circshift.html

카테고리

Help CenterFile Exchange에서 Image Segmentation and Analysis에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by