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条件语句中加入自己的处理语句。这样就正确了。。