我正在录制视频片段并在每个帧上执行各种图像处理方法以获得所需的结果。
现在,一旦我得到结果,我正在寻找我想捕捉并存储我的硬盘上的特定帧。
要做到这一点,我使用imwrite函数将帧写为jpg。然后我用imshow在namesWindow中显示这个框架。
问题是,当满足所有条件存储图像我的程序而不是存储图像时,给我一个运行时错误.......
以下是代码:
for(vector<double>::iterator iter_dis = Left_Point_distance.begin(); iter_dis != Left_Point_distance.end();++iter_dis)
{
if(*iter_dis > 20 && center.y >= 120 && center.x >=510 && Box[0].width > Box[0].height)
{
char* window_Punches = "Punches";
namedWindow(window_Punches ,1);
Mat Hook;
imwrite("C:\\Hook.jpg", Hook);
imshow(window_Punches, Hook);
}
if(*iter_dis >20 && center.y <=60)
{
}
}
通过opencv教程这是怎么做到的,但在我的情况下是不行的......
此外,所有过程都在无限循环中进行,视频帧存储在Mat帧中;然后使用imshow函数在窗口中显示。
有人能发现这里的错误吗??
答案 0 :(得分:3)
你定义了Mat Hook,但在尝试用imwrite()
写时它是空的答案 1 :(得分:0)
您对此代码的期望是什么:
Mat Hook;
imwrite("C:\\Hook.jpg", Hook);
imshow(window_Punches, Hook);
您创建一个空矩阵并使用它。