#include
#include
using namespace std;
using namespace cv;
int main()
{
string path = "Y:\test_video.mp4";
VideoCapture cap(path);//VideoCapture cap;cap.open("");
Mat img;
while (true)
{
cap >> img;//cap.read(img);
imshow("windows",img);
waitKey(0);
}
return 0;
}
运行提示image是nullptr引发未处理的中断怎么回事
因为是空图,img对应的数据是NULL,那怎么去save去imshow,所以会报错。
在imwrite或imshow前加个判断
if(!img.empty) 满足非空才去imwrite或imshow即可
该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个问题可能是由于没有成功打开视频文件而引起的。请检查一下视频文件路径是否正确,确保程序可以找到视频文件。
此外,您还可以尝试使用cap.isOpened()方法来检查视频文件是否已经成功打开。如果打开失败,该方法会返回false。例如:
VideoCapture cap(path);
if (!cap.isOpened()) {
cout << "无法打开视频文件" << endl;
return -1;
}
如果视频文件已经成功打开,但是仍然出现image是nullptr的错误提示,可能是由于cap.read()方法没有成功读取视频帧而引起的。您可以尝试使用cap.grab()方法来读取视频帧,并在读取成功后再使用cap.retrieve()方法来获取帧图像。例如:
VideoCapture cap(path);
if (!cap.isOpened()) {
cout << "无法打开视频文件" << endl;
return -1;
}
Mat img;
while (true) {
cap.grab(); // 读取视频帧
cap.retrieve(img); // 获取帧图像
imshow("windows",img);
waitKey(0);
}
希望这可以帮助您解决问题。
"Y:\\test_video.mp4"