OpenCV의 set() 함수를 활용하면 비디오 프레임의 가로(너비)와 세로(높이)를 자유롭게 설정할 수 있습니다. 아래 두 줄의 코드가 바로 비디오 프레임의 크기를 지정하는 부분입니다.
- set(CAP_PROP_FRAME_WIDTH, 320);
- set(CAP_PROP_FRAME_HEIGHT, 240);
첫 번째 줄은 프레임의 너비를 320픽셀로 설정하고, 두 번째 줄은 높이를 240픽셀로 설정합니다. 이 두 코드가 함께 적용되면 320 x 240 해상도의 비디오 스트림이 생성됩니다. 이처럼 OpenCV를 사용하면 간단한 코드 몇 줄만으로도 비디오 해상도를 손쉽게 조절할 수 있습니다.
다음 프로그램은 기본 카메라에서 캡처한 비디오 스트림의 해상도를 변경하는 예제입니다.
예제 코드
#include<opencv2/opencv.hpp>//VideoCapture 클래스를 사용하기 위한 OpenCV 헤더//
#include<iostream>
using namespace std;
using namespace cv;
int main() {
Mat myImage;//프레임을 저장할 행렬 선언//
namedWindow("Video Player");//비디오를 출력할 창 선언//
VideoCapture cap(0);//기본 카메라에서 프레임 스트림을 캡처하는 객체 생성//
cap.set(CAP_PROP_FRAME_WIDTH, 320);//비디오 너비 설정
cap.set(CAP_PROP_FRAME_HEIGHT, 240);//비디오 높이 설정//
if (!cap.isOpened()){ //비디오 스트림을 찾지 못하면 에러 메시지 출력//
cout << "No video stream detected" << endl;
system("pause");
return-1;
}
while (true){ //비디오를 계속 재생하기 위한 무한 루프//
cap >> myImage;
if (myImage.empty()){ //프레임이 감지되지 않으면 루프 종료//
break;
}
imshow("Video Player", myImage);//비디오 화면에 출력//
char c = (char)waitKey(25);//프레임 처리 시간 25밀리초 허용 및 종료 조건 확인//
if (c == 27){ //'Esc' 키 입력 시 루프 종료//
break;
}
}
cap.release();//버퍼 메모리 해제//
return 0;
}
이 프로그램을 실행하면 카메라 영상이 320 x 240 해상도로 재생됩니다.