주요 콘텐츠

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

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

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

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

최상의 성능을 위해 디스크에 기록하려면 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 속성에 전달된 후에는 해당 객체를 수정해서는 안 됩니다.