이번시간에는 AForge .Net 라이브러리를 사용하여 간단하게 Video Source로부터 Frame을 추출해 낼 수 있는 방법에 대해서 소개하려고합니다. 이전 시간에 증강현실과 관련된 내용을 소개하면서 실시간으로 Camera로 부터 얻어오는 내용에 대한 언급이 전혀 없어서 요청하시는 분이 있을것 같아 올려봅니다.
아래 소스는 제가 평소에 간단한 영상처리 프로젝트를 구현할때 사용하는 소스로 AForge .Net 라이브러리를 사용하여 파일 또는 웹캠에서 영상데이터를 수집 할 수 있는 내용을 담고있습니다. 먼저 클래스의 구조입니다.
먼저 클래스의 이름은 Camera이고, 간단하게 입력받은 영상에 대한 정보를 조회 할 수 있는 몇가지 Property와 WebCam을 Device를 가져오거나 동영상 파일로부터 VideoSource를 생성하는 기능을 포함하고 있습니다. 그리고 가장 기본적인 WebCam 또는 Video Source에서 Frame이 갱신되었을 경우 NewFrame이라는 이벤트를 통해 Frame Image를 전달합니다.
가능하면 Property와 Method 이름을 풀어서 작성하였기 때문에 각 항목에 대한 설명은 생략하도록 하겠습니다.
(궁금하신 점은 말씀해주시면 자세히 설명해드리겠습니다.)
아래는 소스코드입니다.
소스코드 열기
이번에도 역시 코드가 상당히 기네요.. 위 코드는 이해하기 힘들다 싶으시면 그냥 붙여넣기 하여 사용하셔도 되구요.. 간단하게 몇가지 사례별로 적용할 수 있는 사용법에 대해 설명해 드리겠습니다.
이해가 잘 되시나요? 이렇게 여러분의 상황에 맞게 적절히 세팅을 해주신 뒤 NewFrame이벤트가 발생하면 Camera 객체의 LastFrame Property를 통해 해당 Frame의 이미지를 가져 오실 수 있습니다. 사용하시다가 발생하는 문제나 궁금하신 점은 리플이나 이메일로 연락주시면 답변해드리도록 하겠습니다.
PS. 위 코드는 AForege .NET 라이브러리를 사용했기 때문에 실행전 반드시 해당 라이브러리가 설치되어 있어야 합니다.
AForge .Net 라이브러리에 대한 자세한 정보는 http://code.google.com/p/aforge/ 에서 확인 하실 수 있습니다.

