0
동영상에서 움직이는 입자 주위에 원을 추가하고 싶습니다. 모든 프레임 (변수 Traj
)에 대해 입자의 좌표를 제공합니다. 그러나 다음 코드는 매 프레임마다 내 입자 위에 단색 직사각형을 그립니다. 어떤 제안?Matlab - 동영상의 모든 프레임에 원을 추가합니다.
function movie = AurelieCreateMovie3(Filename, Traj)
L = 369;
color = [1:3];
R = 7;
info = imfinfo(Filename);
W = info.Width;
H = info.Height;
movie = uint8(zeros(H,W,3,L));
frame = Traj(:,1);
x = round(Traj(:,2));
y = round(Traj(:,3));
L = length(x); %length of this track
dt = 0:0.01:2*pi;
for k = 1:L
movie(:,:,:,k) = imread(Filename,frame(k));
x_circle = R.* cos(dt) + x(k);
y_circle = R.* sin(dt) + y(k);
movie(round(y_circle), round(x_circle), color, k) = 255;
end
mov = immovie(movie);
movie2avi(mov, 'moviefinal', 'compression', 'None', 'fps', 23);
implay(mov);
end
를 사용하여 선형 인덱스로 변환 할 수 있습니다 "영화 (라운드 (y_circle), 원형 (x_circle), 색상, K) = 255;" 그것은 내게 오류가 발생합니다 : sub2ind를 사용하여 오류가 발생했습니다. 범위 밖의 첨자 – user6275697
@ user6275697 죄송합니다. 4D 행렬에 색인을 생성하는 위치를 놓쳤습니다. 이 경우 작동하도록 업데이트했습니다. – Suever
죄송 합니다만 이전과 동일한 오류가 발생합니다. – user6275697