C++ OpenCV中的函数
您好,我已经在OpenCV中编写了以下代码。基本上,它从文件中读取视频。现在,我想创建一个函数来调整视频大小,但我不确定如何从主函数调用“VideoCapture”类。我已经编写了一个示例函数,看看它是否可以读取任何内容,但它编译得很好,显示了来自主函数的内容,但没有来自新创建的函数的内容。有什么帮助吗?另外,我不是很有经验,请容忍我,哈哈C++ OpenCV中的函数,c++,codeblocks,C++,Codeblocks,您好,我已经在OpenCV中编写了以下代码。基本上,它从文件中读取视频。现在,我想创建一个函数来调整视频大小,但我不确定如何从主函数调用“VideoCapture”类。我已经编写了一个示例函数,看看它是否可以读取任何内容,但它编译得很好,显示了来自主函数的内容,但没有来自新创建的函数的内容。有什么帮助吗?另外,我不是很有经验,请容忍我,哈哈 using namespace cv; using namespace std; void resize_video(Vid
using namespace cv;
using namespace std;
void resize_video(VideoCapture capture);
int main(int argc, char** argv)
{
VideoCapture capture; //the C++ API class to capture the video from file
if(argc == 2)
capture.open(argv[1]);
else
capture.open(0);
if(!capture.isOpened())
{
cout << "Cannot open video file " << endl;
return -1;
}
Mat frame;
namedWindow("display", CV_WINDOW_AUTOSIZE);
cout << "Get the video dimensions " << endl;
int fps = capture.get((int)CV_CAP_PROP_FPS);
int height = capture.get((int)CV_CAP_PROP_FRAME_HEIGHT);
int width = capture.get((int)CV_CAP_PROP_FRAME_WIDTH);
int noF = capture.get((int)CV_CAP_PROP_FRAME_COUNT);
CvSize size = cvSize(width , height);
cout << "Dimensions: " << width << height << endl;
cout << "Number of frames: " << noF << endl;
cout << "Frames per second: " << fps << endl;
while(true)
{
capture >> frame;
if(frame.empty())
break;
imshow("display", frame);
if (waitKey(30)== 'i')
break;
}
//resize_video();
}
void resize_video(VideoCapture capture)
{
cout << "Begin resizing video " << endl;
//return 0;
}
使用名称空间cv;
使用名称空间std;
void resize_视频(视频捕获);
int main(int argc,字符**argv)
{
视频捕获;(/C++ API类)从文件中捕获视频
如果(argc==2)
capture.open(argv[1]);
其他的
capture.open(0);
如果(!capture.isOpened())
{
难道你想在while循环中调用你的函数,而不是在它之后(太晚了,程序结束了)
所以,它可能看起来像这样:
void resize_video( Mat & image )
{
//
// do your processing
//
cout << "Begin resizing video " << endl;
}
while(true)
{
capture >> frame;
if(frame.empty())
break;
resize_video(frame);
imshow("display", frame);
if (waitKey(30)== 'i')
break;
}