diff --git a/modules/features2d/src/akaze.cpp b/modules/features2d/src/akaze.cpp index 2297194b2c..566283859e 100644 --- a/modules/features2d/src/akaze.cpp +++ b/modules/features2d/src/akaze.cpp @@ -211,8 +211,10 @@ namespace cv if( descriptors.needed() ) { - Mat& desc = descriptors.getMatRef(); + Mat desc; impl.Compute_Descriptors(keypoints, desc); + // TODO optimize this copy + desc.copyTo(descriptors); CV_Assert((!desc.rows || desc.cols == descriptorSize())); CV_Assert((!desc.rows || (desc.type() == descriptorType()))); diff --git a/modules/features2d/src/kaze.cpp b/modules/features2d/src/kaze.cpp index 63b48c3b41..9e24397cc5 100644 --- a/modules/features2d/src/kaze.cpp +++ b/modules/features2d/src/kaze.cpp @@ -151,8 +151,9 @@ namespace cv if( descriptors.needed() ) { - Mat& desc = descriptors.getMatRef(); + Mat desc; impl.Feature_Description(keypoints, desc); + desc.copyTo(descriptors); CV_Assert((!desc.rows || desc.cols == descriptorSize())); CV_Assert((!desc.rows || (desc.type() == descriptorType())));