tracker->update(dstImage1, roi);//刷新ROI的位置
在这一句报错,后来发现update()中的dstimage1没有经过处理,把之前对image进行的 转换颜色空间、二值化、开闭运算、canny运算 又进行一遍。
开始报错如下
OpenCV(3.4.13) Error: Assertion failed (img.channels() == 1 || img.channels() == 3) in cv::TrackerKCFImpl::updateImpl, file D:\opencv\opencv_contrib-3.4\modules\tracking\src\trackerKCF.cpp, line 306
图像处理后报错如下
OpenCV(3.4.13) Error: Assertion failed (img.channels() == 3) in cv::TrackerKCFImpl::getSubWindow, file D:\opencv\opencv_contrib-3.4\modules\tracking\src\trackerKCF.cpp, line 697
应该是图像通道数的问题。
现在报错如下
OpenCV(3.4.13) Error: Bad argument (Matrix operand is an empty matrix.) in cv::checkOperandsExist, file D:\WorkSpace\opencv_3413\opencv\sources\modules\core\src\matrix_expressions.cpp, line 24
发现是roi的问题,部分内容是空的。对区域大小要求很高,过大或过小都会出问题。