2012-11-09 5 views
0

라이브 진행중인 video.so에서 특정 객체를 감지하고 싶습니다. 프레임 추출 부분 (opencv, C++)을 다른 부분과 다른 감지 기능 (emgucv, C#)으로 구현합니다. 그 부분을 통합하기 때문에 C++ 프로젝트의 exe 파일을 C# 프로젝트에 추가했는데 잘 작동합니다. 하지만 지금은 오프라인 에서이 프로젝트를 테스트하고 싶습니다. 즉, 하드 디스크에 저장된 비디오를 사용하여이 프로젝트를 테스트하려고합니다. 통합 이전에 C++ 프로젝트는 온라인 및 오프라인 상황 모두에서 실행할 수있었습니다. 그러나 통합 후에는 온라인 상태에서만 실행할 수 있습니다. 이 문제를 해결하도록 도와주세요.비디오를 카메라 입력으로 재생하는 방법은 무엇입니까?

답변

3

매직 카메라, 가짜 웹캠 등 웹캠 에뮬레이터를 항상 사용해 볼 수 있습니다 (인터넷에 소프트웨어가 많이 있습니다). 웹캠에서 오는 것처럼 비디오 파일을 재생합니다.

그러나 스트림과 파일 입력을 모두 수용 할 수 있도록 소프트웨어 디자인을 다시 구성하는 것이 좋습니다. 캡처 논리와 처리 논리를 분리하면 매우 간단합니다.

+0

답장을 보내 주셔서 대단히 감사합니다. 나는 이런 종류의 소프트웨어가이 프로젝트에 사용될 수 있다고 생각한다. – Thar1988

+0

나는 그런 종류의 소프트웨어를 다운로드하고 프로그램을 사용하여 테스트합니다. 예, 카메라 입력으로 사용할 수 있습니다. 그러나 그 입력 비디오를 사용하는 객체를 찾을 수 없습니다. (이전에는 라이브 카메라 비디오에서 객체를 찾을 수있었습니다). 이 문제에 대한 제안 사항이 있습니까? – Thar1988

0

라이브 비디오 카메라는 기본적으로 이미지 프레임의 비동기 소스입니다. 아마도 카메라 API에 콜백 함수를 전달하고 그 콜백은 새 프레임의 가용성에 따라 트리거 될 것입니다. 상당히 직설적 인 방식으로이 기능을 모방 할 수 있습니다.

비디오 파일을 열고 루프에서 실행 ... 루프의 각 반복, 그것은 파일에서 프레임을 잡고, 적절하게 패키지화 한 다음 콜백 함수를 호출합니다. 그런 다음 몇 밀리 초 동안 잠자기 한 다음 루프를 반복 할 수 있습니다. 이 함수를 자체 스레드에서 실행하십시오. 콜백의 관점에서 보면 라이브 카메라와 다를 바 없습니다.

+0

이 질문에 답해 주셔서 감사합니다. – Thar1988

관련 문제