주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

디스크에 이미지 데이터 기록

디스크에 데이터 기록을 위한 형식

비디오 입력 객체가 실행되는 동안, 수집되는 이미지 데이터를 디스크 파일에 기록할 수 있습니다. 디스크에 이미지 데이터를 기록하면 데이터에 대한 기록이 제공됩니다.

최상의 성능을 위해 디스크에 기록하려면 Image Acquisition Toolbox™ 함수가 아닌 MATLAB® 함수로 생성된 MATLAB VideoWriter 객체가 필요합니다. VideoWriter 객체를 생성하고 구성한 후 videoinput 객체의 DiskLogger 속성에 제공합니다.

VideoWriter는 다양한 형식으로 데이터를 기록하는 여러 가지 프로필을 제공합니다. 다음 예제에서는 Motion JPEG 2000 프로파일을 사용하는데, 이 프로파일은 단일 대역(회색조) 데이터뿐 아니라 다중 바이트 데이터도 기록할 수 있습니다. 지원되는 프로필은 다음과 같습니다.

  • 'Motion JPEG 2000' — 압축된 Motion JPEG 2000 파일.

  • 'Archival' — 손실 없는 압축이 적용된 Motion JPEG 2000 파일.

  • 'Motion JPEG AVI' — Motion JPEG 코덱을 사용하여 압축된 AVI 파일.

  • 'Uncompressed AVI'RGB24 비디오가 포함된 압축되지 않은 AVI 파일.

  • 'MPEG-4' — H.264 인코딩을 사용한 압축 MPEG-4 파일(Windows 7 또는 macOS 10.7 이상 시스템).

  • 'Grayscale AVI' — 회색조 비디오가 포함된 압축되지 않은 AVI 파일. 흑백 장치에만 사용됩니다.

  • 'Indexed AVI' — 인덱스된 비디오가 포함된 압축되지 않은 AVI 파일. 흑백 장치에만 사용됩니다.

VideoWriter를 사용하여 디스크에 데이터 기록

이 예제에서는 회색조 형식(Mono10)의 GigE Vision® 장치를 사용합니다.

  1. GigE Vision 이미지 수집 장치에 액세스하고 픽셀당 10비트의 회색조 형식을 사용하는 비디오 입력 객체를 만듭니다.

    vidobj = videoinput('gige',1,'Mono10');
  2. 수집한 데이터를 메모리, 디스크 또는 둘 다에 기록할 수 있습니다. 기본적으로 데이터는 메모리에 기록됩니다. 기록 모드를 디스크로 변경하려면 비디오 입력 객체의 LoggingMode 속성을 구성합니다.

    vidobj.LoggingMode = 'disk'
  3. 프로필을 Motion JPEG 2000으로 설정하여 VideoWriter 객체를 만듭니다.

    logfile = VideoWriter('logfile.mj2','Motion JPEG 2000')
  4. VideoWriter 객체를 사용하도록 비디오 입력 객체를 구성합니다.

    vidobj.DiskLogger = logfile;
  5. 이제 비디오 입력 객체가 Motion JPEG 2000 파일에 데이터를 기록하도록 구성되었으므로 수집을 시작합니다.

    start(vidobj)
  6. 수집이 완료될 때까지 기다리십시오.

    wait(vidobj,5)
  7. 대량의 데이터를 디스크에 기록할 때 디스크 쓰기가 데이터 수집보다 늦어지는 경우가 종종 있습니다. 모든 프레임이 디스크에 기록되었는지 확인하려면 DiskLoggerFrameCount 속성을 사용하면 됩니다.

    while (vidobj.FramesAcquired ~= vidobj.DiskLoggerFrameCount) 
        pause(.1)
    end
  8. 이러한 명령을 사용하고 출력을 비교하여 FramesAcquiredDiskLoggerFrameCount 속성이 동일한 값을 가지고 있는지 확인할 수 있습니다.

    vidobj.FramesAcquired
    vidobj.DiskLoggerFrameCount
  9. 비디오 입력 객체가 더 이상 필요하지 않으면 삭제하고 작업 공간에서 지웁니다.

    delete(vidobj)
    clear vidobj

VideoWriter 객체를 사용하여 이미지 데이터를 기록하기 위한 지침

VideoWriter를 사용할 때 다음 사항에 유의하세요.

  • DiskLoggerFrameCount 속성이 FramesAcquired 속성과 같아져서 기록이 완료되었음을 나타내기 전까지는 비디오 입력 객체를 삭제해서는 안 됩니다. 그렇게 하면 모든 데이터가 기록되지 않고 디스크 기록이 중지됩니다.

  • start가 새로운 VideoWriter 객체를 제공하지 않고 여러 번 호출되면 start가 호출될 때 이전 파일의 내용이 지워집니다.

  • VideoWriter 객체가 DiskLogger 속성에 전달된 후에는 해당 객체를 수정해서는 안 됩니다.