在利用opencv中的ORB特征计算光流过程中,发现会不定时出现了莫名其妙的报错:
terminate called after throwing an instance of 'cv::Exception'
what(): OpenCV(4.1.1) /home/nvidia/host/build_opencv/nv_opencv/modules/core/src/batch_distance.cpp:275: error: (-215:Assertion failed) type == src2.type() && src1.cols == src2.cols && (type == CV_32F || type == CV_8U) in function 'batchDistance'
Aborted
在网上找到提示:OpenCV2 BatchDistance错误-215
发现可能是图像特征点不丰富、导致后续匹配过程出错,于是我将每一次提取的特征点和描述符数量打印出来,果然如此:
cout<<"特征点数量:"<<keypoints_1.size()<<" 描述符数量:"<<descriptors_1.size()<<endl;
发现果然是0
特征点数量:0 描述符数量:[0 x 0]
terminate called after throwing an instance of 'cv::Exception'
what(): OpenCV(4.1.1) /home/nvidia/host/build_opencv/nv_opencv/modules/core/src/batch_distance.cpp:275: error: (-215:Assertion failed) type == src2.type() && src1.cols == src2.cols && (type == CV_32F || type == CV_8U) in function 'batchDistance'
问题找到,快速解决吧!
感谢互联网,把大家踩过的坑发布出来!