관심쟁이 영호

[#6] OpenCV(with.c++) ㅣ 프레임, 지연시간에 관해서 ㅣ 영상파일에 추가작업 해보기! 본문

학교공부/OpenCV

[#6] OpenCV(with.c++) ㅣ 프레임, 지연시간에 관해서 ㅣ 영상파일에 추가작업 해보기!

관심쟁이 영호 2020. 11. 9. 01:30
반응형

안녕하세요!

관심쟁이 영호입니다.

 

오늘 여러분들과 공부해볼 내용은

프레임과 지연시간 그리고!

영상파일에 임의의 조작을 해볼 예정이에요.

 


 

프레임이란?

 

나무위키에서 가져올게요!(인용해도되려나..?)

 

프레임 = 움직임을 이루는 하나의 동작

게임이나 애니메이션의 움직임 중, 하나의 동작을 지정할때 사용하는 말. 2D게임이 이식될 때 움직임을 이루는 그림 중 몇 장을 삭제했을 땐 '프레임이 잘렸다'고 표현하고, 애니메이션에서는 실제 영상이 24프레임이든 29.97프레임이든, 초당 동작 그림 숫자가 8장일 때는 '초당 8프레임의 움직임'이라고 표현한다.

3D 게임이나 애니메이션을 제작하는 입장에서 움직임에 영향을 행사하는 포즈를 '키 프레임'이라고 표현한다. 플래시 등, 영상을 제작하는 프로그램에서라면 필수적으로 접하게 되는 단어.

 

라고 합니다!

 

 

프레임

지연시간이란?

1프레임이 표시가되고 다음 프레임이 표시될때까지의 시간이에요!

주사율이 크고, 좋은 모니터일 수록 지연시간이 짧다는 점!

 

그럼 다음으로 영상파일을 불러오고 해당 영상파일에

임의의 조작을 해보겠습니다!

 

#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;

void main() {
	
	string filename = "../image/my_clock.mp4";
	VideoCapture capture;
	capture.open(filename);
	CV_Assert(capture.isOpened());

	double frame_rate = capture.get(CAP_PROP_FPS);

	int delay = 1000 / frame_rate;
	int frame_cnt;
	Mat frame;
	while (capture.read(frame)) {
		frame_cnt = capture.get(CAP_PROP_POS_FRAMES);
		if (waitKey(delay) >= 0)break;

		if (frame_cnt < 100);
		else if (frame_cnt < 200) frame -= Scalar(0, 0, 100);
		else if (frame_cnt < 300) frame += Scalar(100, 0, 0);
		else if (frame_cnt < 400) frame = frame * 1.5;
		else if (frame_cnt < 500) frame = frame * 0.5;
		imshow("동영상을 읽어보자!", frame);

	}
	
	waitKey(0);
	

}

이렇게 구성해보았어요!

동영상파일은 이전과 같은 동영상을 선택했습니다.

 

결과를 보여드릴게요!


현재프레임을 CAP_PROP_POS_FRAMES로 받아와서

그 프레임이 100 , 200, 300, 400 구간마다 임의의 조정을 해주었어요!

 

이렇게 하였더니 화면에 볼 수 있듯이

동영상 행렬에 Scalar값을 빼주어 색이 변한것을 볼 수 있습니다!!

 

그럼 capture.get(@)를 사용할 때 사용하는 것을 살펴볼게요!

 

속성 상수 설명
CAP_PROP_POS_MSEC 동영상 파일의 현재 위치
CAP_PROP_POS_FRAMES 캡처되는 프레임 번호
CAP_PROP_POS_AVI_RATIO 동영상 파일의 상대적 위치
CAP_PROP_FRAME_WIDTH 프레임의 너비
CAP_PROP_FRAME_HEIGHT 프레임의 높이
CAP_PROP_FPS 초당 프레임의 수
CAP_PROP_FOURCC 코덱의 4문자
CAP_PROP_FRAME_COUNT 동영상 파일의 총 프레임 수
CAP_PROP_MODE retrieve()에 의해 반환되는 Mat영상포맷
CAP_PROP_BRIGHTESS 카메라에서 영상의 밝기
CAP_PROP_CONTRAST 카메라에서 영상의 대비
CAP_PROP_SATURATION 카메라에서 영상의 포화도
CAP_PROP_HUE 카메라에서 영상의 색조
CAP_PROP_GAIN 카메라에서 영상의 Gain
CAP_PROP_EXPOSURE 카메라에서 노출
CAP_PROP_AUTOFOCUS 자동 초점 조절

 

오늘은 여기까지!

본내용은 "OpenCV로 배우는 영상 처리 및 응용(정성환, 배종욱 지음)" 책을 참고하여 쓴 내용입니다.

300x250
Comments