Main Content

movie

녹화된 동영상 프레임 재생

설명

예제

movie(M)은 배열 M에 있는 동영상 프레임을 한 번 재생합니다. 현재 Figure 또는 좌표축에서 동영상 프레임을 만들려면 getframe을 참조하십시오.

예제

movie(M,n)은 동영상을 n번 재생합니다. n을 숫자형 배열로 지정할 수 있습니다. 여기서 배열의 첫 번째 요소는 동영상을 재생할 횟수를 지정하고, 나머지 요소는 동영상에서 연속적으로 재생할 프레임의 목록입니다.

예제

movie(M,n,fps)는 동영상을 재생할 초당 프레임 수 fps를 지정합니다.

예제

movie(h,...)는 figure 또는 axes 객체 h로 식별되는 Figure나 좌표축의 중심에서 동영상을 재생합니다. Figure나 좌표축을 지정하면 MATLAB®이 동영상을 사용 가능한 크기에 맞춥니다.

예제

movie(h,M,n,fps,loc)는 요소를 4개 가진 배열 loc에 의해 현재 Figure 내에 지정되는 위치에서 동영상을 재생합니다.

예제

모두 축소

루프에서 getframe 함수를 사용하여 peaks 예제 함수의 프레임을 기록한 다음 동영상 프레임을 한 번 재생합니다.

figure 객체 h를 만듭니다. peaks 함수 Z의 곡면 플롯을 초기화합니다. Figure 좌표축을 사용자 지정합니다.

h = figure;
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';

동영상 프레임을 저장하기 위해 요소를 40개 가진 배열 M을 사전할당합니다.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

j의 각 반복에서 함수 X의 각 플롯을 개별 프레임으로 캡처합니다. M에 프레임을 저장합니다.

Figure 객체의 'Visible' 속성을 'off'로 설정하여 X를 계산하는 동안 곡면 플롯이 안 보이게 합니다.

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

Figure의 'Visible' 속성을 'on'으로 설정하고 M에 있는 동영상을 한 번 재생합니다.

h.Visible = 'on';
movie(M);

Figure contains an axes object. The axes object contains an object of type surface.

Figure 플롯이 계산되는 동안 Figure 플롯을 봅니다. 동영상 배열을 한 번 재생합니다.

figure 객체 h를 만들고 곡면 플롯을 초기화합니다. Figure 좌표축을 사용자 지정합니다.

h = figure;
Z = peaks;
surf(Z)
axis tight manual

Figure contains an axes object. The axes object contains an object of type surface.

ax = gca;
ax.NextPlot = 'replaceChildren';

동영상 프레임을 저장하기 위해 요소를 40개 가진 배열 M을 사전할당합니다.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

함수 X의 각 플롯을 개별 프레임으로 캡처하여 M에 저장합니다.

for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

M에 있는 동영상을 한 번 재생합니다.

movie(M);

Figure contains an axes object. The axes object contains an object of type surface.

동영상 배열의 4개 프레임을 두 번 재생합니다.

figure 객체 h를 만들고 곡면 플롯을 초기화합니다. Figure 좌표축을 사용자 지정합니다.

h = figure;
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';

동영상 프레임을 저장하기 위해 요소를 40개 가진 배열 M을 사전할당합니다.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

함수 X의 각 플롯을 개별 프레임으로 캡처하여 M에 저장합니다.

figure 객체의 'Visible' 속성을 'off'로 설정합니다.

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

Figure 객체의 'Visible' 속성을 'on'으로 설정합니다. 동영상의 1번째, 15번째, 23번째, 36번째 프레임을 연속된 순서로 두 번 재생합니다. 동영상이 초당 12프레임을 재생하도록 설정합니다.

h.Visible = 'on';
movie(M,[2 1 15 23 36],12);

Figure contains an axes object. The axes object contains an object of type surface.

동영상을 재생할 초당 프레임 수를 지정합니다.

figure 객체 h를 만들고 곡면 플롯을 초기화합니다. Figure 좌표축을 사용자 지정합니다.

h = figure;
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';

동영상 프레임을 저장하기 위해 요소를 40개 가진 배열 M을 사전할당합니다.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

함수 X의 각 플롯을 개별 프레임으로 캡처하여 M에 저장합니다.

figure 객체의 'Visible' 속성을 'off'로 설정합니다.

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

Figure 객체의 'Visible' 속성을 'on'으로 설정합니다. 초당 6프레임으로 동영상을 한 번 재생합니다.

h.Visible = 'on';
movie(M,1,6);

Figure contains an axes object. The axes object contains an object of type surface.

Figure의 왼쪽 아래 코너에서 동영상 프레임을 재생합니다.

figure 객체 h를 만들고 곡면 플롯을 초기화합니다. Figure 좌표축을 사용자 지정합니다.

h = figure;
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';

동영상 프레임을 저장하기 위해 요소를 40개 가진 배열 M을 사전할당합니다.

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

figure 객체의 'Visible' 속성을 'off'로 설정합니다. 핸들 h의 각 Figure를 개별 프레임으로 캡처하여 M에 저장합니다.

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe(h);
end

Figure 객체의 'Visible' 속성을 'on'으로 설정합니다. M에 있는 동영상을 초당 12프레임으로 한 번 재생하되, x, y 방향으로 30픽셀의 오프셋을 지정합니다. h를 지정하여 현재 Figure에서 동영상을 재생합니다.

h.Visible = 'on';
movie(h,M,1,12,[30 30 0 0]);

Figure contains an axes object. The axes object contains an object of type surface.

입력 인수

모두 축소

동영상 프레임으로 구성된 배열로, 구조체로 구성된 배열로 지정됩니다. 여기서 각 구조체는 화면에 나타나는 현재 Figure 또는 좌표축에서 캡처된 이미지 데이터를 포함합니다. M의 각 행은 하나의 동영상 프레임에 대응됩니다.

getframe 함수를 사용하여 이미지 데이터를 캡처하고 cdatacolormap 필드를 갖는 구조체로 저장할 수 있습니다. cdata 이미지 속성과 colormap 객체에 대한 자세한 내용은 Image 속성colormap 항목을 참조하십시오.

Figure의 동영상을 재생할 횟수로, 숫자형 배열로 지정됩니다. n을 지정하지 않으면 movie는 동영상을 한 번만 재생합니다. n이 음수이면 매번 재생될 때마다 정방향으로 재생된 다음 역방향으로 재생됩니다.

n을 벡터로 지정하면 첫 번째 요소는 동영상 재생 횟수이고 나머지 요소는 동영상에서 재생할 프레임의 목록입니다.

예를 들어, M에 프레임이 4개 있고 n이 요소 n = [10 4 4 2 1]을 가진 배열이라면 movieM에 있는 동영상을 10번 재생합니다. 이때 동영상은 네 번째 프레임, 다시 네 번째 프레임, 두 번째 프레임 , 마지막으로 첫 번째 프레임의 순서로 구성됩니다.

초당 프레임으로, 숫자형 스칼라로 지정됩니다. fps를 지정하지 않으면 movie는 초당 12프레임으로 재생합니다. fps로 지정된 속도로 재생할 수 없는 컴퓨터는 가능한 최대한의 속도로 동영상을 재생합니다.

그래픽스 객체 핸들로, axes 핸들 또는 Figure 핸들로 지정됩니다. h의 디폴트 핸들은 gca로, gca는 현재 Figure의 현재 좌표축 또는 차트를 반환합니다. gca 함수에 대한 자세한 내용은 gca를 참조하십시오.

좌표축이 아니라 Figure에 있는 동영상을 재생하려면 Figure 핸들(또는 gcf)을 첫 번째 인수로 지정하십시오. movie(figure_handle,...)

위치 벡터로, 요소를 4개 가진 숫자형 배열 [x y 0 0]으로 지정됩니다. 여기서 동영상 프레임의 왼쪽 아래 코너는 배열의 처음 두 요소로 지정된 좌표에 고정됩니다. loc에 지정된 좌표는 핸들 h로 지정된 Figure 또는 좌표축의 왼쪽 아래 코너에 상대적인 위치이며, 단위는 픽셀입니다. movie 함수는 loc의 마지막 두 개 요소를 무시합니다.

  • movie 함수는 기본 Figure 크기인 560×420을 사용하며 크기가 더 크거나 작은 프레임의 동영상에 맞게 Figure의 크기를 조정하지 않습니다. 다른 프레임 크기를 수용하려면 동영상에 맞게 Figure의 크기를 조정하면 됩니다.

  • 동영상을 버퍼링하면 모든 프레임이 메모리에 저장됩니다. 따라서 Microsoft® Windows®와 아마도 다른 플랫폼에서는 시스템 리소스에 따라 긴 동영상(약 수백 개의 프레임)이 메모리를 모두 소진해 버릴 수 있습니다. 이러한 경우 오류 메시지가 발생합니다.

    ??? Error using ==> movie 
    Could not create movie frame

    동영상을 중단하려면 Ctrl+C를 누르면 됩니다.

버전 내역

R2006a 이전에 개발됨

참고 항목

| |