objdetect(QR): avoid bug with empty input
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 21 Mar 2020 00:51:34 +0000 (00:51 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 21 Mar 2020 01:35:30 +0000 (01:35 +0000)
modules/objdetect/src/qrcode.cpp

index 4990dfd..12d8991 100644 (file)
@@ -122,9 +122,16 @@ void QRDetect::init(const Mat& src, double eps_vertical_, double eps_horizontal_
 
     eps_vertical   = eps_vertical_;
     eps_horizontal = eps_horizontal_;
-    adaptiveThreshold(barcode, bin_barcode, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 83, 2);
-    adaptiveThreshold(resized_barcode, resized_bin_barcode, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 83, 2);
 
+    if (!barcode.empty())
+        adaptiveThreshold(barcode, bin_barcode, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 83, 2);
+    else
+        bin_barcode.release();
+
+    if (!resized_barcode.empty())
+        adaptiveThreshold(resized_barcode, resized_bin_barcode, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 83, 2);
+    else
+        resized_bin_barcode.release();
 }
 
 vector<Vec3d> QRDetect::searchHorizontalLines()