#include <opencv/cv.h>
#include <opencv/highgui.h>
void main() {
IplImage *frame; //동영상 프레임
double threshold = 128; //이진 영상 임계값
//동영상파일 로드
CvCapture *video = cvCaptureFromFile("D:/study/testmedia.mov");
//첫번째 프레임
cvGrabFrame(video);
frame = cvRetrieveFrame(video);
//반전된 프레임객체생성
IplImage *binaryImage = cvCreateImage(cvGetSize(frame), frame->depth, frame->nChannels);
cvNamedWindow("video", CV_WINDOW_AUTOSIZE);
while (1) {
//cvGrabFrame(동영상) : 하나의 프레임을 잡음
cvGrabFrame(video);
//cvRetrieveFrame(동영상) : 잡은 프레임으로부터 이미지를 구함
frame = cvRetrieveFrame(video);
if (!frame || cvWaitKey(10) >= 0) { break; }
//이진영상 생성
//cvThreshold(원본 이미지, 결과 이미지, 임계값, 최대 명암값, 이진화 방식)
cvThreshold(frame, binaryImage, threshold, 255, CV_THRESH_BINARY);
//이진화 방식
//CV_THRESH_BINARY : 임계값초과 255, 임계값이하 0
//CV_THRESH_BINARY_INV : 임계값초과 0, 임계값이하 255
//CV_THRESH_TRUNC : 임계값초과-임계값, 임계값이하-원래픽셀값
//CV_THRESH_TOZERO : 임계값초과-원래픽셀값, 임계값이하-0
//CV_THRESH_TOZERO_INV : 임계값초과-0, 임계값이하-원래픽셀값
cvShowImage("video", binaryImage);
}
//메모리에서 동영상 해제
cvReleaseCapture(&video);
cvReleaseImage(&frame);
cvReleaseImage(&binaryImage);
cvDestroyWindow("video");
}