diff --git a/modules/features2d/src/orb.cpp b/modules/features2d/src/orb.cpp index 57bce1ce4e..983b2dd7ad 100644 --- a/modules/features2d/src/orb.cpp +++ b/modules/features2d/src/orb.cpp @@ -49,7 +49,8 @@ template inline void copyVectorToUMat(const std::vector<_Tp>& v, O { if(v.empty()) um.release(); - Mat(1, (int)(v.size()*sizeof(v[0])), CV_8U, (void*)&v[0]).copyTo(um); + else + Mat(1, (int)(v.size()*sizeof(v[0])), CV_8U, (void*)&v[0]).copyTo(um); } static bool @@ -805,6 +806,10 @@ static void computeKeyPoints(const Mat& imagePyramid, std::vector ukeypoints_buf; nkeypoints = (int)allKeypoints.size(); + if(nkeypoints == 0) + { + return; + } Mat responses; UMat ukeypoints, uresponses(1, nkeypoints, CV_32F);