2013-05-29 3 views
0

일부 깊이 맵이있는 비디오를 작성하려고합니다.opencv를 사용하여 심도 이미지의 비디오를 작성하십시오.

나는 단일 채널로 cv :: Mat_에서 cv :: Mat로 깊이 이미지를 변환했습니다. 내가 쓰고 싶은 avi 파일을 열어도 사용할 수있는 코덱이 없습니다. VideoCapture.open (...)은 파일을 만들거나 열 수없는 것 같습니다.

저는 올바른 코덱을 선택하는 것이 문제라고 생각합니다. 내가 틀렸을지도 모른다. 작은 코드 스 니펫을 게시했습니다.

cv::VideoWriter outputVideo_; 
source_ = "~/Hello.avi"; 
cv::Size S(480, 640); 
outputVideo_.open(source_, CV_FOURCC('D','I','B', ' '), 20, S, false); 

if (!outputVideo_.isOpened()) 
{ 
    std::cout << "Could not open the output video for write: " << source_ << std::endl; 
    return; 
} 

이 경우 제대로 작동하려면 어떻게해야합니까? 나는 리눅스 12.04, ROS (로봇 운영체제)와 OpenCV 2.4.2를 사용하고있다.

+0

깊이 맵 데이터 란 정확히 무엇입니까? 8 비트 값의 640x480 맵? 다른 것? –

+0

예 초기 깊이 맵은 640 * 480 float입니다. 나는 그것을 비디오에 저장해야하는 640 * 480 8 비트로 변환한다. – navderm

답변

0

파일 이름만으로 open() 함수를 사용하려고한다. 여기 나와 함께 잘 작동하기 때문입니다.

VideoWriter outputVideo_; 
source_ = "~/Hello.avi"; 
// cv::Size S(480, 640); 
outputVideo_.open(source_); 

if (!outputVideo_.isOpened()) 
{ 
    std::cout << "Could not open the output video for write: " << source_ << std::endl; 
    return; 
관련 문제