2011-12-06 3 views
3

이미지를 읽을 때 0으로 설정하여 그레이 스케일로 강제 설정할 수있는 플래그가 있습니다.비디오 파일을 회색조로 읽는 방법

cv::Mat img = cv::imread(file, 0); // keeps it grayscale 

동영상에 해당하는 항목이 있습니까?

답변

5

아니야.

프레임을 쿼리하고 그레이 스케일로 변환해야합니다. 는 C++ 인터페이스와 https://stackoverflow.com/a/3444370/176769

:

VideoCapture cap(0); 
if (!cap.isOpened()) 
{ 
    // print error msg 
    return -1; 
} 

namedWindow("gray",1); 

Mat frame; 
Mat gray; 
for(;;) 
{ 
    cap >> frame; 

    cvtColor(frame, gray, CV_BGR2GRAY); 

    imshow("gray", gray); 
    if(waitKey(30) >= 0) 
     break; 
} 

return 0; 
+0

frame' '와 함께 상기'for' 범위 밖에서'gray' 선언 물론 고가의 메모리 할당을 방지

은 C 인터페이스를 사용 매 프레임마다이 큰 이미지의 할당을 해제합니다. 그것을 고치면 유권자 투표가 가치가 있습니다. –

+0

팁 주셔서 감사합니다. – karlphillip