gpt4 book ai didi

c - openCV 错误 : Assertion failed (scn == 3 || scn == 4)

转载 作者:太空狗 更新时间:2023-10-29 16:33:58 26 4
gpt4 key购买 nike

我在最后一帧遇到 Assertion failed 错误,同时逐帧读取和写入视频。错误只显示在最后一帧,不知道为什么。看到这个答案here ,这建议给 waitkey,我的代码已经有等待键了。

我的简单代码如下

int main()
{
CvCapture *capture=cvCaptureFromFile("C:\\vid\\op.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:\\frames\\image%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 转换为灰度,因此如果帧为空则退出循环。

关于c - openCV 错误 : Assertion failed (scn == 3 || scn == 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21871540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com