Member 12408248 Ответов: 1

Я написал программу, которая пытается использовать слайдер для управления воспроизведением видео, но когда я ее выполнил,я не вижу окна слайдера.


#include<highgui.h>
#include<cv.h>
#include<iostream>

int g_slider_position = 0;
CvCapture *g_capture = NULL;

void onTrackbarSlide(int position)
{
	cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES, position);

	return;
}

int main()
{
	cvNamedWindow("sd", CV_WINDOW_AUTOSIZE);
	g_capture = cvCreateFileCapture("F://迅雷下载/永远的车神.rmvb");
	int frames = (int) cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT);
	if (frames != 0)
	{
		cvCreateTrackbar("position", "example", &g_slider_position, frames, onTrackbarSlide);
	}
	IplImage *frame;
	frame = cvQueryFrame(g_capture);
	while (frame)
	{
		cvShowImage("sd", frame);
		if (cvWaitKey(33) == 13)
			break;
		frame = cvQueryFrame(g_capture);
	}
	cvReleaseCapture(&g_capture);
	cvDestroyWindow("sd");
	std::cout << "Program end.\n";
	return 0;
}


Что я уже пробовал:

Моя программа может работать, и мой код почти такой же, как и моя учебная книга.
Я только начинаю изучать opencv, но не могу найти проблему.

1 Ответов

Рейтинг:
0

KarstenK

Если Вы читаете документацию cvCreateTrackbar вы бы знали, что вам нужно имя windows, чтобы прикрепить трекбар.

cvCreateTrackbar("position", "sd"/*your window name*/, &g_slider_position, frames, onTrackbarSlide);
должен делать свою работу.

Довольно просто : - O