From fe6eb01404932ba08b7781f4229f023a97c2a640 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Mon, 29 Aug 2016 10:34:47 -0400 Subject: [PATCH] Fixed opencv setSize assert error (RegistrationVis): [DEBUG] (2016-08-29 10:26:03.821) RegistrationVis.cpp:460::computeTransformationImpl() kptsFrom=0 [DEBUG] (2016-08-29 10:26:03.821) RegistrationVis.cpp:461::computeTransformationImpl() kptsTo=0 OpenCV Error: Assertion failed (s >= 0) in setSize, file /home/mathieu/workspace/opencv-2.4.11/modules/core/src/matrix.cpp, line 116 terminate called after throwing an instance of 'cv::Exception' what(): /home/mathieu/workspace/opencv-2.4.11/modules/core/src/matrix.cpp:116: error: (-215) s >= 0 in function setSize --- corelib/src/RegistrationVis.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/corelib/src/RegistrationVis.cpp b/corelib/src/RegistrationVis.cpp index ed91f924..df82ff3a 100644 --- a/corelib/src/RegistrationVis.cpp +++ b/corelib/src/RegistrationVis.cpp @@ -460,8 +460,9 @@ Transform RegistrationVis::computeTransformationImpl( UDEBUG("kptsFrom=%d", (int)kptsFrom.size()); UDEBUG("kptsTo=%d", (int)kptsTo.size()); cv::Mat descriptorsFrom; - if((kptsFrom.empty() && fromSignature.getWordsDescriptors().size()) || - fromSignature.getWordsDescriptors().size() == kptsFrom.size()) + if(fromSignature.getWordsDescriptors().size() && + ((kptsFrom.empty() && fromSignature.getWordsDescriptors().size()) || + fromSignature.getWordsDescriptors().size() == kptsFrom.size())) { descriptorsFrom = cv::Mat(fromSignature.getWordsDescriptors().size(), fromSignature.getWordsDescriptors().begin()->second.cols,