nareshmlx/opencv-pr huggingface dataset:
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
Why & is used?
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
Please clarify this change
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
I'd like to recommend to use `std::vector<std::vector<Point> >` instead.
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
Existing `std::vector<Point>` doesn't limit you on 4 points only. You can push here 4,8,12,etc points.
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
please, write description for each new function and bring back description for old functions
**File:** modules/objdetect/perf/perf_qrcode_pipeline.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -53,6 +53,56 @@ PERF_TEST_P_(Perf_Objdetect_QRCode, decode)
 }
 #endif
 
+typedef ::perf::TestBaseWithParam< std::string > Perf_Objdetect_QRCode_Multi;
+
+PERF_TEST_P_(Perf_Objdetect_QRCode_Multi, detectMulti)
+{
+    const std::string name_current_image = GetParam();
+    const std::string root = "cv/qrcode/multiple/";
```

Review comment:
here you use `Point2f`, but in the line `67` you use `Point`, what's the difference? Why can't I use `Point2f` everywhere?
**File:** samples/cpp/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -2,23 +2,45 @@
 #include "opencv2/imgproc.hpp"
 #include "opencv2/highgui.hpp"
 #include "opencv2/videoio.hpp"
+#include "opencv2/imgcodecs.hpp"
 #include <string>
 #include <iostream>
 
 using namespace std;
 using namespace cv;
```

Review comment:
please remove extra line
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
`future_pixel` variable has `unit8_t` type, why do you convert to `int` type?
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684
**Review Line:** 869

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
+    {
+        return false;  // image data is not enough for providing reliable results
+    }
+    int incn = img.channels();
+    CV_Check(incn, incn == 1 || incn == 3 || incn == 3, "");
```

Review comment:
Why do you remove and created this code again?
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
Please don't change code which you don't modification
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
what's magic numers?
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
Whta's magic numbers? Please call all numbers/
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
please write code used unite code style in file
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
please moved magic numbers in const variable and name its
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
what's mean variable `p`? please renamed variable, then other people understand it
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
with variable `q` too
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
please named points type
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
detectMulti (like `detectMultiScale()` in objdetect) From API point of view - it make sense to add `maxCount` or `minSize` parameters. Or add them as a class object properties.
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
`decodeMulti`
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
`detectAndDecodeMulti` with limitation parameters.
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
`detectQRCodeMulti` + parameters
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
Why is inheritance not used here?
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
10? How do you plan to refactor code about OpenCV types? Magic and hard-coded values must be avoided. Consider using `.convertTo()`.
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
We usually don't return `std::vector` from functions (it is very inefficient in C++98): ``` bool decodeMulti(InputArray img, CV_OUT std::vector<std::string>& decoded_info, InputArrayOfArrays points, OutputArrayOfArrays straight_qrcode = noArray()); ``` `cv::String` => `std::string`
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
`cv::String` => `std::string`
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
There is the the similar code in `QRDetect::separateVerticalLines()`. What is the difference? Why is the difference? I try to describe problem which we should avoid by unifying and reusing the same code for features finding. We must have consistent behavior between `QRDetect` and `QRDetectMulti`: - `QRDetectMulti` - no detections ==> `QRDetect` - no detection too and vice versa - `QRDetectMulti` - has detections ==> `QRDetect` - one of these detections (largest) - `QRDetect` - has detection ==> `QRDetectMulti` - has detections including this one
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
`0.5 * ` is not needed (on both sides of the condition)
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
> `vector<int> a` Do we really need vector here? I see 3 values only. vectors and other object must be passed by "const reference" by default.
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
Inconsistent indentation with other parts of the file.
**File:** modules/objdetect/src/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -22,6 +22,48 @@ namespace cv
 {
 using std::vector;
 
+static bool checkQRInputImage(InputArray img, Mat& gray)
+{
+    CV_Assert(!img.empty());
+    CV_CheckDepthEQ(img.depth(), CV_8U, "");
+
+    if (img.cols() <= 20 || img.rows() <= 20)
```

Review comment:
6 spaces => 4 spaces
**File:** samples/cpp/qrcode.cpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -2,23 +2,45 @@
 #include "opencv2/imgproc.hpp"
 #include "opencv2/highgui.hpp"
 #include "opencv2/videoio.hpp"
+#include "opencv2/imgcodecs.hpp"
 #include <string>
 #include <iostream>
 
 using namespace std;
 using namespace cv;
```

Review comment:
This code should be wrote once. The same note for lines 128-135. Switch processing/drawing code only.
**File:** modules/objdetect/include/opencv2/objdetect.hpp
**Change Type:** modified
**Context:** PR #15338: QR-Code detector : multiple detection - **Merge with extra**: https://github.com/opencv/opencv_extra/pull/684

**Code Changes:**
```diff
@@ -694,8 +694,8 @@ class CV_EXPORTS_W QRCodeDetector
     CV_WRAP bool detect(InputArray img, OutputArray points) const;
 
     /** @brief Decodes QR code in image once it's found by the detect() method.
-     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
 
+     Returns UTF8-encoded output string or empty string if the code cannot be decoded.
      @param img grayscale or color (BGR) image containing QR code.
      @param points Quadrangle vertices found by detect() method (or some other algorithm).
      @param straight_qrcode The optional output image containing rectified and binarized QR code
```

Review comment:
Please keep the origin lines where it's possible: restore removed empty lines in example