-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2.4.cpp
More file actions
61 lines (41 loc) · 1.92 KB
/
2.4.cpp
File metadata and controls
61 lines (41 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Part2.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//
#include <iostream>
#include <cv.h>
#include <highgui.h>
int g_slider_position = 0;
CvCapture* g_capture = NULL;
void onTrackbarSlide(int pos) {
cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES, pos);
}
int main(int argc, char* argv[])
{
CvCapture* capture = 0;
cvNamedWindow("TrackBar", CV_WINDOW_AUTOSIZE);
capture = cvCreateFileCapture(argv[1]);
if (!capture) {
return -1;
}
IplImage* bgr_frame = cvQueryFrame(capture);
double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
CvSize size = cvSize((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH), (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT));
CvVideoWriter* writer = cvCreateVideoWriter(argv[2], CV_FOURCC('M', 'J', 'P', 'G'), fps, size);
IplImage* logpolar_frame = cvCreateImage(size, IPL_DEPTH_8U, 3);
while ((bgr_frame = cvQueryFrame(capture)) != NULL) {
cvLogPolar(bgr_frame, logpolar_frame, cvPoint2D32f(bgr_frame->width/2, bgr_frame->height/2), 40, CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);
IplImage* logpolar_frame_wr = cvCreateImage(cvSize(logpolar_frame->width / 2, logpolar_frame->height / 2), logpolar_frame->depth, logpolar_frame->nChannels);
cvPyrDown(logpolar_frame, logpolar_frame_wr); // сжатие изображения в 2 раза
cvWriteFrame(writer, logpolar_frame_wr);
// упраженение 2.4 - вывод на экран
cvNamedWindow("DisplayPicture", CV_WINDOW_AUTOSIZE);
cvShowImage( "DisplayPicture", logpolar_frame_wr);
cvWaitKey(0);
cvReleaseImage(&logpolar_frame_wr);
cvDestroyWindow( "DisplayPicture" );
}
cvReleaseImage(&logpolar_frame);
cvReleaseVideoWriter(&writer);
cvReleaseCapture(&capture);
getchar();
return(0);
}