Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ OpenCV에서 FPS 값 구하는 방법


OpenCV에서 동영상의 FPS(초당 프레임 수) 값을 확인하려면 VideoCapture 클래스의 get() 함수에 CAP_PROP_FPS 속성을 인자로 전달하면 됩니다. 이 함수는 해당 동영상의 FPS 값을 숫자 형태로 반환합니다.

FPS 값을 얻는 기본 원리

프로그램 시작 부분에서 FPS 값을 저장할 정수형 변수(예: FPS)를 먼저 선언합니다. 그다음 FPS = cap.get(CAP_PROP_FPS); 코드를 실행하면 동영상의 FPS 값이 해당 변수에 저장됩니다.

아래 예제 프로그램은 지정된 동영상 파일의 FPS를 읽어와 콘솔 창에 출력합니다.

예제 코드

#include<opencv2/opencv.hpp>//VideoCapture 클래스를 사용하기 위한 OpenCV 헤더//
#include<iostream>
using namespace std;
using namespace cv;
int main() {
    int FPS;//FPS 값을 저장할 정수형 변수 선언//
    VideoCapture cap("video1.mp4");//동영상 파일에서 프레임 스트림을 캡처하는 객체 생성//
    FPS = cap.get(CAP_PROP_FPS);//동영상의 FPS 값 가져오기//
    cout << "Total Number of frames are:" << FPS << endl;//콘솔 창에 FPS 값 출력//
    system("pause");//결과를 확인할 수 있도록 화면 일시 정지//
    cap.release();//버퍼 메모리 해제//
    return 0;
}

실행 결과

프로그램을 실행하면 콘솔 창에 아래와 같이 동영상의 FPS 값이 표시됩니다.

C++ OpenCV에서 FPS 값 구하는 방법

참고 사항

  • get(CAP_PROP_FPS)는 내부적으로 double 타입의 값을 반환하므로, 필요에 따라 (int)cap.get(CAP_PROP_FPS)처럼 명시적 형 변환을 하거나 cvRound() 함수로 반올림하여 사용할 수 있습니다.
  • 일부 동영상 파일이나 웹캠 스트림은 FPS 메타데이터를 포함하지 않는 경우가 있으며, 이럴 때는 0이 반환될 수 있으므로 반환값 검증이 필요합니다.
  • 카메라 장치를 사용하는 경우 실제 적용 가능한 프레임 레이트는 장치 사양과 해상도 설정에 따라 달라질 수 있습니다.