使用imshow mat 出现 Opencv Error:*** in cv::imshow

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-29 15:42   32   0
VideoCapture capture(0); 
// capture.open(0);
 

 /*
 while ( capture.isOpened())
 {

  capture >> fram; 
  fram.convertTo(fram, CV_32FC3);
  normalize(fram, fram, 1, 0, CV_MINMAX); 
  imshow("src", fram);   


以上写法会出现错误,原因是这里没有加入判断,当定义的fram为空时的判断

这样的程序在debug时是正确的,自己猜测的原因是,debug时,处理速度会很慢,这是,第一帧也正常了,内存不报错。


正确写法应该是:


Mat fram, prefram, result, fg;
 int framNum = 0;

 int count = 0;
 VideoCapture capture;
 int camOpen = capture.open(CV_CAP_ANY);

 namedWindow("window", CV_WINDOW_AUTOSIZE);

 while (true) {
  capture >> fram;

  if (!fram.empty()){ 
在if条件语句中加入自己的处理语句。这样就正确了。。



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP