Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

writeVideo

비디오 데이터를 파일에 쓰기

설명

writeVideo(v,img)는 배열의 데이터를 v와 연결된 비디오 파일에 씁니다.

writeVideo를 호출하기 전에 open(v)를 호출해야 합니다.

예제

writeVideo(v,frame)은 일반적으로 getframe 함수에서 반환하는 하나 이상의 동영상 프레임을 씁니다.

예제

모두 축소

RGB 이미지를 무손실 압축을 사용한 Motion JPEG 2000 파일에 씁니다.

견본 스틸 이미지 peppers.png의 데이터가 포함된 배열을 만듭니다.

A = imread('peppers.png');

새 비디오 파일을 위한 VideoWriter 객체를 만듭니다. 'Archival' 프로파일을 사용하여 무손실 압축을 사용한 Motion JPEG 2000 파일을 지정합니다.

v = VideoWriter('myFile','Archival');

새 파일의 비디오 압축 유형을 확인합니다.

v.VideoCompressionMethod
ans = 
'Motion JPEG 2000'

쓰려는 비디오 파일을 엽니다. 그런 다음, A의 이미지 데이터를 파일에 씁니다.

open(v)
writeVideo(v,A)

비디오 파일을 닫습니다.

close(v)

샘플 인덱스 이미지 파일 corn.tif에서 이미지와 컬러맵 데이터를 읽습니다.

[X,map] = imread('corn.tif');

새 인덱스 AVI 파일을 위한 VideoWriter 객체를 만듭니다.

v = VideoWriter('myIndexed.avi','Indexed AVI');

vColormap 속성에 컬러맵 데이터를 할당합니다.

v.Colormap = map;

쓰려는 파일을 엽니다. 파일을 연 후에는 v의 속성을 변경할 수 없습니다.

open(v)

X의 이미지 데이터를 비디오 파일에 씁니다. 그런 다음 파일을 닫습니다.

writeVideo(v,X)
close(v)

예제 파일 xylophone.mp4를 압축되지 않은 AVI 파일로 변환합니다.

비디오를 읽고 쓰는 객체를 만들고 쓰려는 AVI 파일을 엽니다.

reader = VideoReader('xylophone.mp4');
writer = VideoWriter('transcoded_xylophone.avi', ...
                        'Uncompressed AVI');

writer.FrameRate = reader.FrameRate;
open(writer);

각 프레임을 읽고 씁니다.

while hasFrame(reader)
   img = readFrame(reader);
   writeVideo(writer,img);
end

close(writer);

프레임의 시퀀스를 생성하고, 쓰려는 파일에 대한 비디오 객체를 만든 다음, 이 프레임을 비디오 파일에 쓰는 작업을 수행하여 프레임의 시퀀스를 압축된 AVI 파일에 씁니다.

좌표축과 Figure 속성을 설정하여 비디오에 대한 프레임을 생성합니다.

Z = peaks;
surf(Z); 
axis tight manual 
set(gca,'nextplot','replacechildren'); 

출력 비디오 파일에 대한 video writer 객체를 만들고, 쓰려는 객체를 엽니다.

v = VideoWriter('peaks.avi');
open(v);

일련의 프레임을 생성하고, Figure에서 프레임을 가져온 다음, 각 프레임을 파일에 씁니다.

for k = 1:20 
   surf(sin(2*pi*k/20)*Z,Z)
   frame = getframe(gcf);
   writeVideo(v,frame);
end

close(v);

입력 인수

모두 축소

입력 VideoWriter 객체입니다. VideoWriter를 사용하여 객체를 만듭니다.

회색조 또는 RGB 색 이미지를 나타내는 값으로, 2차원 배열, 3차원 배열 또는 4차원 배열로 지정됩니다.

  • 단일 회색조, 단색 또는 인덱스 이미지의 경우, img는 2차원(높이×너비)이어야 합니다.

  • 단일 트루컬러(RGB) 이미지의 경우, img는 3차원(높이×너비×3)입니다.

  • 회색조 이미지 시퀀스의 경우, img는 4차원(높이×너비×1×프레임)입니다. 파일 내 모든 프레임의 높이와 너비는 일관되어야 합니다.

  • RGB 이미지 시퀀스의 경우, img는 4차원(높이×너비×3×프레임)입니다. 파일 내 모든 프레임의 높이와 너비는 일관되어야 합니다.

AVI 또는 MPEG-4 파일을 만들 경우:

  • img는 하나 이상의 회색조나 RGB 색 이미지를 나타내는 single형, double형 또는 uint8 값들로 구성된 배열이며, writeVideo는 이를 하나 이상의 RGB 비디오 프레임으로 씁니다.

  • single형 또는 double형의 데이터는 인덱스 AVI 파일을 쓸 경우를 제외하고는 [0,1] 범위에 있어야 합니다.

Motion JPEG 2000 파일을 만들 경우:

  • img는 하나 이상의 단색이나 RGB 색 이미지에 나타내는 uint8, int8, uint16 또는 int16 값들로 구성된 배열입니다.

데이터형: single | double | int8 | int16 | uint8 | uint16

프레임 데이터로, 단일 프레임을 나타내는 1×1 구조체 배열이나 다중 프레임을 나타내는 구조체의 1×F 배열로 지정됩니다. 각 프레임에는 cdata 필드와 colormap 필드가 포함됩니다. 일반적으로 frame 배열은 getframe 함수에서 반환됩니다.

colormap이 비어 있지 않은 경우, cdata의 각 요소는 2D(높이×너비) 배열이어야 합니다. 파일 내 모든 프레임의 높이와 너비는 일관되어야 합니다.

colormap에는 최대 256개 항목이 포함될 수 있습니다. colormap의 각 요소는 [0,1] 범위에 있어야 합니다.

VideoWriter 객체를 만들 때 profile 입력값과 cdata 크기에 따라 writeVideoframe을 사용하는 방식이 결정됩니다.

VideoWriter 객체의 profilecdata의 각 요소의 크기 writeVideo의 동작

'Indexed AVI'

2차원(높이×너비)프레임을 제공된 대로 사용합니다.
'Grayscale AVI'2차원(높이×너비)프레임을 제공된 대로 사용합니다. colormap이 비워져 있어야 합니다.

기타 모든 프로파일

2차원(높이×너비)colormap 필드를 사용하여 RGB 이미지 프레임을 생성합니다.
3차원(높이×너비×3)colormap 필드를 무시합니다. cdata 필드를 사용하여 RGB 이미지 프레임을 생성합니다.

데이터형: struct

참고 항목

| | |

도움말 항목

R2010b에 개발됨