openCV错误:断言失败(scn == 3 || scn == 4)
发布时间:2020-12-16 05:58:23 所属栏目:百科 来源:网络整理
导读:在最后一帧,我一直在读取和写入一个视频帧时,发生了断言失败的错误.错误只显示在最后一帧,不知道为什么.看到这个答案 here,这建议给waitkey,我的代码已经有等待键了. 我的简单代码如下 int main(){ CvCapture *capture=cvCaptureFromFile("C:vidop.mp4")
在最后一帧,我一直在读取和写入一个视频帧时,发生了断言失败的错误.错误只显示在最后一帧,不知道为什么.看到这个答案
here,这建议给waitkey,我的代码已经有等待键了.
我的简单代码如下 int main() { CvCapture *capture=cvCaptureFromFile("C:vidop.mp4"); if(capture==NULL) { printf("can't open video"); } Mat frame,first_frame,current_frame; char buffer[100]; int frame_count=1,p=1; while(1) { /*Getting the current frame from the video*/ frame=cvQueryFrame(capture); cv::cvtColor(frame,current_frame,1); //saving current frame sprintf(buffer,"C:framesimage%u.jpg",p); imwrite(buffer,current_frame); p++; waitKey(1); } return 0; } 有人请帮忙 解决方案:我在读取每个文件之后添加了一个检查, if(frame.empty()){ fprinf("cannot access frame"); return -1; } 解决方法
每次查询后,您需要检查框架是否为空
喜欢 frame=cvQueryFrame(capture); if (frame.empty()) break; 你会得到这样一个错误,因为你尝试在最后一帧之后将一个空的Mat转换为灰度,所以如果frame为空,则退出循环. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读