nareshmlx/opencv-pr huggingface dataset:
**File:** modules/python/src2/gen2.py
**Change Type:** modified
**Context:** PR #23268: fix: remove extra '/O' modifier for '/IO' arguments

**Code Changes:**
```diff
@@ -448,6 +448,15 @@ def __init__(self, atype, name, default_value, modifiers=(),
         self.py_outputarg = False
         self.enclosing_arg = enclosing_arg
 
+    def __str__(self):
+        return 'ArgInfo("{}", tp="{}", default="{}", in={}, out={})'.format(
+            self.name, self.tp, self.defval, self.inputarg,
+            self.outputarg
+        )
+
```

Review comment:
It is a good point, I hope there is no generators relying on presence of both modifiers...
**File:** modules/features2d/src/sift.dispatch.cpp
**Change Type:** modified
**Context:** PR #23124: different interpolation by double image
**Review Line:** 202

**Code Changes:**
```diff
+            dbl.create(Size(gray_fpt.cols*2, gray_fpt.rows*2), gray_fpt.type());
+            Mat H = Mat::zeros(2, 3, CV_32F);
+            H.at<float>(0, 0) = 0.5f;
+            H.at<float>(1, 1) = 0.5f;
+
+            cv::warpAffine(gray_fpt, dbl, H, dbl.size(), INTER_LINEAR | WARP_INVERSE_MAP, BORDER_REFLECT);
+        } else {
 #if DoG_TYPE_SHORT
-        resize(gray_fpt, dbl, Size(gray_fpt.cols*2, gray_fpt.rows*2), 0, 0, INTER_LINEAR_EXACT);
+            resize(gray_fpt, dbl, Size(gray_fpt.cols*2, gray_fpt.rows*2), 0, 0, INTER_LINEAR_EXACT);
 #else
```

Review comment:
Just curios why `INTER_NEAREST` mode of resize doesn't work for such simple 2-x upscale. https://github.com/opencv/opencv/blob/4.7.0/modules/imgproc/src/resize.cpp#L988
**File:** modules/features2d/test/test_descriptors_regression.impl.hpp
**Change Type:** modified
**Context:** PR #23124: different interpolation by double image

**Code Changes:**
```diff
@@ -7,6 +7,34 @@ namespace opencv_test { namespace {
 /****************************************************************************************\
 *                     Regression tests for descriptor extractors.                        *
 \****************************************************************************************/
+static void double_image(Mat& src, Mat& dst) {
+
+    dst.create(Size(src.cols*2, src.rows*2), src.type());
+
+    Mat H = Mat::zeros(2, 3, CV_32F);
+    H.at<float>(0, 0) = 0.5f;
```

Review comment:
> countNonZero Avoid using of `countNonZero()`. Use `ASSERT_LE(cv::norm(image, downsized_back), 1e-5);` instead.
**File:** modules/features2d/test/test_detectors_invariance.cpp
**Change Type:** modified
**Context:** PR #23124: different interpolation by double image
**Review Line:** 40

**Code Changes:**
```diff
@@ -37,7 +37,7 @@ INSTANTIATE_TEST_CASE_P(AKAZE_DESCRIPTOR_KAZE, DetectorRotationInvariance,
  */
 
 INSTANTIATE_TEST_CASE_P(SIFT, DetectorScaleInvariance,
-                        Value(IMAGE_BIKES, SIFT::create(0, 3, 0.09), 0.65f, 0.98f));
+                        Value(IMAGE_BIKES, SIFT::create(0, 3, 0.09), 0.60f, 0.98f));
 
 INSTANTIATE_TEST_CASE_P(BRISK, DetectorScaleInvariance,
                         Value(IMAGE_BIKES, BRISK::create(), 0.08f, 0.49f));
```

Review comment:
Why do we have this regression in accuracy?
**File:** modules/features2d/include/opencv2/features2d.hpp
**Change Type:** modified
**Context:** PR #23124: different interpolation by double image
**Review Line:** 296

**Code Changes:**
```diff
+    to disable it (which is deprecated and issues a warning) is provided to keep the original behavior.
     */
     CV_WRAP static Ptr<SIFT> create(int nfeatures = 0, int nOctaveLayers = 3,
         double contrastThreshold = 0.04, double edgeThreshold = 10,
-        double sigma = 1.6);
+        double sigma = 1.6, bool enable_precise_upscale = true);
 
     /** @brief Create SIFT with specified descriptorType.
     @param nfeatures The number of best features to retain. The features are ranked by their scores
@@ -313,10 +317,14 @@ class CV_EXPORTS_W SIFT : public Feature2D
     is captured with a weak camera with soft lenses, you might want to reduce the number.
```

Review comment:
Updated ABI checked exclusion list on CI: - before: http://pullrequest.opencv.org/buildbot/builders/precommit_linux64/builds/102562 - after: http://pullrequest.opencv.org/buildbot/builders/precommit_linux64/builds/102646
**File:** modules/features2d/test/test_descriptors_regression.impl.hpp
**Change Type:** modified
**Context:** PR #23124: different interpolation by double image

**Code Changes:**
```diff
@@ -7,6 +7,34 @@ namespace opencv_test { namespace {
 /****************************************************************************************\
 *                     Regression tests for descriptor extractors.                        *
 \****************************************************************************************/
+static void double_image(Mat& src, Mat& dst) {
+
+    dst.create(Size(src.cols*2, src.rows*2), src.type());
+
+    Mat H = Mat::zeros(2, 3, CV_32F);
+    H.at<float>(0, 0) = 0.5f;
```

Review comment:
For bit-exact compare with 0: ``` ASSERT_EQ(0, cv::norm(image, downsized_back, NORM_INF)); ```
**File:** modules/features2d/src/sift.dispatch.cpp
**Change Type:** modified
**Context:** PR #23124: different interpolation by double image

**Code Changes:**
```diff
@@ -72,6 +72,7 @@
 #include "precomp.hpp"
 #include <opencv2/core/hal/hal.hpp>
 #include <opencv2/core/utils/tls.hpp>
+#include <opencv2/core/utils/logger.hpp>
 
 #include "sift.simd.hpp"
 #include "sift.simd_declarations.hpp" // defines CV_CPU_DISPATCH_MODES_ALL=AVX2,...,BASELINE based on CMakeLists.txt content
@@ -88,7 +89,8 @@ class SIFT_Impl : public SIFT
 public:
```

Review comment:
Users don't want messages "spam" even if they keep using legacy modes due to some reasons. Especially if it is an "explicit" request from users as **this patch changes the default behavior** (and there is option to roll back only). So please use `CV_LOG_ONCE_INFO()` here instead (ONCE with INFO level).
**File:** modules/videoio/src/cap_gstreamer.cpp
**Change Type:** modified
**Context:** PR #22919: Timeouts support for GStreamer backend
**Review Line:** 514

**Code Changes:**
```diff
@@ -504,7 +510,11 @@ bool GStreamerCapture::grabFrame()
     if (gst_app_sink_is_eos(GST_APP_SINK(sink.get())))
         return false;
 
+#if FULL_GST_VERSION >= VERSION_NUM(1,10,0)
+    sample.attach(gst_app_sink_try_pull_sample(GST_APP_SINK(sink.get()), readTimeout));
+#else
     sample.attach(gst_app_sink_pull_sample(GST_APP_SINK(sink.get())));
+#endif
     if (!sample)
         return false;
```

Review comment:
We need a GStreamer version check here. ``` /build/precommit_custom_linux/4.x/opencv/modules/videoio/src/cap_gstreamer.cpp: In member function 'virtual bool cv::GStreamerCapture::grabFrame()': /build/precommit_custom_linux/4.x/opencv/modules/videoio/src/cap_gstreamer.cpp:513:85: error: 'gst_app_sink_try_pull_sample' was not declared in this scope sample.attach(gst_app_sink_try_pull_sample(GST_APP_SINK(sink.get()), readTimeout)); ^ ``` with probably `CV_LOG_ONCE_INFO()` message for old versions.
**File:** modules/videoio/src/cap_gstreamer.cpp
**Change Type:** modified
**Context:** PR #22919: Timeouts support for GStreamer backend
**Review Line:** 514

**Code Changes:**
```diff
@@ -504,7 +510,11 @@ bool GStreamerCapture::grabFrame()
     if (gst_app_sink_is_eos(GST_APP_SINK(sink.get())))
         return false;
 
+#if FULL_GST_VERSION >= VERSION_NUM(1,10,0)
+    sample.attach(gst_app_sink_try_pull_sample(GST_APP_SINK(sink.get()), readTimeout));
+#else
     sample.attach(gst_app_sink_pull_sample(GST_APP_SINK(sink.get())));
+#endif
     if (!sample)
         return false;
```

Review comment:
I have device with old GSteamer. Will check today and update.
**File:** modules/ts/include/opencv2/ts.hpp
**Change Type:** modified
**Context:** PR #23225: Fix clang 14 warnings - Numerous warnings (mostly in tests) have been produced when compiling with clang 14. Most are about missing `overri...

**Code Changes:**
```diff
@@ -116,20 +116,22 @@
 # endif
 #endif
 
-#if defined(__OPENCV_BUILD) && defined(__clang__)
-#pragma clang diagnostic ignored "-Winconsistent-missing-override"
-#endif
 #if defined(__OPENCV_BUILD) && defined(__GNUC__) && __GNUC__ >= 5
 //#pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wsuggest-override"
```

Review comment:
Need to merge it with line 128. There are 1400+ warnings for clang 6.0: http://pullrequest.opencv.org/buildbot/builders/precommit_custom_linux/builds/100200
**File:** modules/ts/include/opencv2/ts.hpp
**Change Type:** modified
**Context:** PR #23225: Fix clang 14 warnings - Numerous warnings (mostly in tests) have been produced when compiling with clang 14. Most are about missing `overri...

**Code Changes:**
```diff
@@ -116,20 +116,22 @@
 # endif
 #endif
 
-#if defined(__OPENCV_BUILD) && defined(__clang__)
-#pragma clang diagnostic ignored "-Winconsistent-missing-override"
-#endif
 #if defined(__OPENCV_BUILD) && defined(__GNUC__) && __GNUC__ >= 5
 //#pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wsuggest-override"
```

Review comment:
Missing push/pop is here for a reason: to avoid massive patching of legacy tests with `override`. ``` $ grep -Rni prepare_to_validation ./modules/ | wc -l 135 ```
**File:** modules/ts/src/ts_perf.cpp
**Change Type:** modified
**Context:** PR #23225: Fix clang 14 warnings - Numerous warnings (mostly in tests) have been produced when compiling with clang 14. Most are about missing `overri...
**Review Line:** 2108

**Code Changes:**
```diff
         return cmp(pts_[idx1], pts_[idx2]);
     }
-private:
-    KeypointComparator& operator=(const KeypointComparator&) = delete;
 };
 }//namespace
 
@@ -2119,7 +2117,8 @@ void perf::sort(std::vector<cv::KeyPoint>& pts, cv::InputOutputArray descriptors
     for (int i = 0; i < desc.rows; ++i)
         idxs[i] = i;
 
```

Review comment:
Removal is not an option for `= delete`. Usually it is a guard, because default compiler generated code is not correct and we should not use copying at all. Try to declare deleted copy ctor.
**File:** modules/videoio/src/cap_obsensor/obsensor_uvc_stream_channel.cpp
**Change Type:** modified
**Context:** PR #23225: Fix clang 14 warnings - Numerous warnings (mostly in tests) have been produced when compiling with clang 14. Most are about missing `overri...

**Code Changes:**
```diff
@@ -198,7 +198,7 @@ DepthFrameUnpacker::DepthFrameUnpacker(){
     outputDataBuf_ = new uint8_t[OUT_DATA_SIZE];
 }
 
-DepthFrameUnpacker::~DepthFrameUnpacker(){
+DepthFrameUnpacker::~DepthFrameUnpacker() {
     delete[] outputDataBuf_;
 }
 
```

Review comment:
It is better to drop `noexcept` from the header file instead.
**File:** modules/ts/src/ts_perf.cpp
**Change Type:** modified
**Context:** PR #23225: Fix clang 14 warnings - Numerous warnings (mostly in tests) have been produced when compiling with clang 14. Most are about missing `overri...
**Review Line:** 2108

**Code Changes:**
```diff
         return cmp(pts_[idx1], pts_[idx2]);
     }
-private:
-    KeypointComparator& operator=(const KeypointComparator&) = delete;
 };
 }//namespace
 
@@ -2119,7 +2117,8 @@ void perf::sort(std::vector<cv::KeyPoint>& pts, cv::InputOutputArray descriptors
     for (int i = 0; i < desc.rows; ++i)
         idxs[i] = i;
 
```

Review comment:
In this specific case I thought that this class is only used in a single place to sort keypoints and nobody actually use `operator=` because it is also `private`. So I decided that probably this was just a habit of implementing safe class. Maybe it would be better to rewrite `sort` like this? What do you think? ``` comparators::KeypointGreater cmp; std::sort(idxs.data(), idxs.data() + desc.rows, [&](int lhs, int rhs){ return cmp(pts[lhs], pts[rhs]); }); ```
**File:** modules/ts/include/opencv2/ts.hpp
**Change Type:** modified
**Context:** PR #23225: Fix clang 14 warnings - Numerous warnings (mostly in tests) have been produced when compiling with clang 14. Most are about missing `overri...

**Code Changes:**
```diff
@@ -116,20 +116,22 @@
 # endif
 #endif
 
-#if defined(__OPENCV_BUILD) && defined(__clang__)
-#pragma clang diagnostic ignored "-Winconsistent-missing-override"
-#endif
 #if defined(__OPENCV_BUILD) && defined(__GNUC__) && __GNUC__ >= 5
 //#pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wsuggest-override"
```

Review comment:
Done, there are only 11 warnings now: 10 in ADE (should be fixed by opencv/ade#33) and 1 in sample.
**File:** modules/ts/include/opencv2/ts.hpp
**Change Type:** modified
**Context:** PR #23225: Fix clang 14 warnings - Numerous warnings (mostly in tests) have been produced when compiling with clang 14. Most are about missing `overri...

**Code Changes:**
```diff
@@ -116,20 +116,22 @@
 # endif
 #endif
 
-#if defined(__OPENCV_BUILD) && defined(__clang__)
-#pragma clang diagnostic ignored "-Winconsistent-missing-override"
-#endif
 #if defined(__OPENCV_BUILD) && defined(__GNUC__) && __GNUC__ >= 5
 //#pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wsuggest-override"
```

Review comment:
~I have not checked clang-6 though, will try it later.~ Checked with clang-6, it should be clean now.
**File:** modules/ts/include/opencv2/ts.hpp
**Change Type:** modified
**Context:** PR #23225: Fix clang 14 warnings - Numerous warnings (mostly in tests) have been produced when compiling with clang 14. Most are about missing `overri...

**Code Changes:**
```diff
@@ -116,20 +116,22 @@
 # endif
 #endif
 
-#if defined(__OPENCV_BUILD) && defined(__clang__)
-#pragma clang diagnostic ignored "-Winconsistent-missing-override"
-#endif
 #if defined(__OPENCV_BUILD) && defined(__GNUC__) && __GNUC__ >= 5
 //#pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wsuggest-override"
```

Review comment:
This is strange, but it works for me, I don't get warnings related to `prepare_to_validation` missing override. I tried clang-6, clang-14, clang-17 and only warnings I can see are from ADE.
**File:** modules/calib/include/opencv2/calib.hpp
**Change Type:** modified
**Context:** PR #23150: Stereo calibration perView pose output: port to 5.x
**Review Line:** 1123

**Code Changes:**
```diff
+                                     InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2,
+                                     InputOutputArray cameraMatrix1, InputOutputArray distCoeffs1,
+                                     InputOutputArray cameraMatrix2, InputOutputArray distCoeffs2,
+                                     Size imageSize, InputOutputArray R, InputOutputArray T, OutputArray E, OutputArray F,
+                                     OutputArray perViewErrors, int flags = CALIB_FIX_INTRINSIC,
+                                     TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6) );
 
 /** @brief Computes Hand-Eye calibration: \f$_{}^{g}\textrm{T}_c\f$
 
@@ -1635,6 +1653,15 @@ similar to D1 .
 @param imageSize Size of the image used only to initialize camera intrinsic matrix.
```

Review comment:
Why `TermCriteria` limited to 30 iterations, but not 100 as in other overloads?
**File:** modules/calib/test/test_fisheye.cpp
**Change Type:** modified
**Context:** PR #23150: Stereo calibration perView pose output: port to 5.x
**Review Line:** 978

**Code Changes:**
```diff
-    cv::Matx33d K2_correct (560.395452535348,                0, 678.971652040359,
-                                   0,  561.90171021422, 380.401340535339,
-                                   0,                0,                1);
+    cv::Matx33d K2_correct (560.395452535348,               0, 678.971652040359,
+                                           0, 561.90171021422, 380.401340535339,
+                                           0,               0,                1);
 
     cv::Vec4d D1_correct (-7.44253716539556e-05, -0.00702662033932424, 0.00737569823650885, -0.00342230256441771);
     cv::Vec4d D2_correct (-0.0130785435677431, 0.0284434505383497, -0.0360333869900506, 0.0144724062347222);
@@ -990,7 +991,7 @@ TEST_F(fisheyeTest, stereoCalibrateWithPerViewTransformations)
 
```

Review comment:
Test formatting change is bad idea. It leads to 4.x->5.x merge conflicts.
**File:** modules/calib/test/test_cameracalibration.cpp
**Change Type:** modified
**Context:** PR #23150: Stereo calibration perView pose output: port to 5.x
**Review Line:** 1442

**Code Changes:**
```diff
             );
-#if 1  // not ported: #22519
-        rmsErrorFromStereoCalib /= nframes*npoints;
-#endif
+
+        /* rmsErrorFromStereoCalib /= nframes*npoints; */
         if (rmsErrorFromStereoCalib > maxReprojErr)
         {
             ts->printf(cvtest::TS::LOG, "The average reprojection error is too big (=%g), testcase %d\n",
-                rmsErrorFromStereoCalib, testcase);
+                       rmsErrorFromStereoCalib, testcase);
```

Review comment:
please remove the dead code.
**File:** modules/calib/include/opencv2/calib.hpp
**Change Type:** modified
**Context:** PR #23150: Stereo calibration perView pose output: port to 5.x
**Review Line:** 1123

**Code Changes:**
```diff
+                                     InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2,
+                                     InputOutputArray cameraMatrix1, InputOutputArray distCoeffs1,
+                                     InputOutputArray cameraMatrix2, InputOutputArray distCoeffs2,
+                                     Size imageSize, InputOutputArray R, InputOutputArray T, OutputArray E, OutputArray F,
+                                     OutputArray perViewErrors, int flags = CALIB_FIX_INTRINSIC,
+                                     TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6) );
 
 /** @brief Computes Hand-Eye calibration: \f$_{}^{g}\textrm{T}_c\f$
 
@@ -1635,6 +1653,15 @@ similar to D1 .
 @param imageSize Size of the image used only to initialize camera intrinsic matrix.
```

Review comment:
No idea, that what was introduced in the original PR. I've replaced 100 by 30 everywhere in `stereoCalibrate`, everything works fine. I propose to leave these 30 iterations since we reach the same level of quality with less iterations
**File:** modules/objdetect/test/test_qrcode_encode.cpp
**Change Type:** modified
**Context:** PR #23168: Fix encodeStructuredAppend() resulting in only one QR code problem, and false output data fix.

**Code Changes:**
```diff
@@ -450,6 +450,32 @@ TEST(Objdetect_QRCode_Encode_Decode_Structured_Append, DISABLED_regression)
 
 #endif // UPDATE_QRCODE_TEST_DATA
 
+CV_ENUM(EncodeModes, QRCodeEncoder::EncodeMode::MODE_NUMERIC,
+                     QRCodeEncoder::EncodeMode::MODE_ALPHANUMERIC,
+                     QRCodeEncoder::EncodeMode::MODE_BYTE)
+
+typedef ::testing::TestWithParam<EncodeModes> Objdetect_QRCode_Encode_Decode_Structured_Append_Parameterized;
+TEST_P(Objdetect_QRCode_Encode_Decode_Structured_Append_Parameterized, regression_22205)
```

Review comment:
RAII is preferable here: ``` cv::Ptr<cv::QRCodeEncoder> encoder = cv::QRCodeEncoder::create(params); ```
**File:** modules/objdetect/test/test_qrcode_encode.cpp
**Change Type:** modified
**Context:** PR #23168: Fix encodeStructuredAppend() resulting in only one QR code problem, and false output data fix.

**Code Changes:**
```diff
@@ -450,6 +450,32 @@ TEST(Objdetect_QRCode_Encode_Decode_Structured_Append, DISABLED_regression)
 
 #endif // UPDATE_QRCODE_TEST_DATA
 
+CV_ENUM(EncodeModes, QRCodeEncoder::EncodeMode::MODE_NUMERIC,
+                     QRCodeEncoder::EncodeMode::MODE_ALPHANUMERIC,
+                     QRCodeEncoder::EncodeMode::MODE_BYTE)
+
+typedef ::testing::TestWithParam<EncodeModes> Objdetect_QRCode_Encode_Decode_Structured_Append_Parameterized;
+TEST_P(Objdetect_QRCode_Encode_Decode_Structured_Append_Parameterized, regression_22205)
```

Review comment:
Use local variable in loop.
**File:** modules/objdetect/test/test_qrcode_encode.cpp
**Change Type:** modified
**Context:** PR #23168: Fix encodeStructuredAppend() resulting in only one QR code problem, and false output data fix.

**Code Changes:**
```diff
@@ -450,6 +450,32 @@ TEST(Objdetect_QRCode_Encode_Decode_Structured_Append, DISABLED_regression)
 
 #endif // UPDATE_QRCODE_TEST_DATA
 
+CV_ENUM(EncodeModes, QRCodeEncoder::EncodeMode::MODE_NUMERIC,
+                     QRCodeEncoder::EncodeMode::MODE_ALPHANUMERIC,
+                     QRCodeEncoder::EncodeMode::MODE_BYTE)
+
+typedef ::testing::TestWithParam<EncodeModes> Objdetect_QRCode_Encode_Decode_Structured_Append_Parameterized;
+TEST_P(Objdetect_QRCode_Encode_Decode_Structured_Append_Parameterized, regression_22205)
```

Review comment:
It makes sense to use parameterized test approach. It's move verbose and easy to debug in case of failure. See https://github.com/opencv/opencv/blob/4.x/modules/calib3d/test/test_affine2d_estimator.cpp#L46 as example and https://github.com/google/googletest/blob/main/docs/advanced.md#value-parameterized-tests for documentation.
**File:** modules/objdetect/src/qrcode_encoder.cpp
**Change Type:** modified
**Context:** PR #23168: Fix encodeStructuredAppend() resulting in only one QR code problem, and false output data fix.

**Code Changes:**
```diff
@@ -332,14 +332,16 @@ void QRCodeEncoderImpl::generateQR(const std::string &input)
         }
         total_num = (uint8_t) struct_num - 1;
     }
-    int segment_len = (int) ceil((int) input.length() / struct_num);
 
-    for (int i = 0; i < struct_num; i++)
+    auto string_itr = input.begin();
+    for (int i = struct_num; i > 0; --i)
     {
```

Review comment:
use RAII and local variables ``` size_t segment_begin = string_itr - input.begin(); size_t segment_end = (input.end() - string_itr) / i; ``
**File:** modules/objdetect/test/test_qrcode_encode.cpp
**Change Type:** modified
**Context:** PR #23168: Fix encodeStructuredAppend() resulting in only one QR code problem, and false output data fix.

**Code Changes:**
```diff
@@ -450,6 +450,32 @@ TEST(Objdetect_QRCode_Encode_Decode_Structured_Append, DISABLED_regression)
 
 #endif // UPDATE_QRCODE_TEST_DATA
 
+CV_ENUM(EncodeModes, QRCodeEncoder::EncodeMode::MODE_NUMERIC,
+                     QRCodeEncoder::EncodeMode::MODE_ALPHANUMERIC,
+                     QRCodeEncoder::EncodeMode::MODE_BYTE)
+
+typedef ::testing::TestWithParam<EncodeModes> Objdetect_QRCode_Encode_Decode_Structured_Append_Parameterized;
+TEST_P(Objdetect_QRCode_Encode_Decode_Structured_Append_Parameterized, regression_22205)
```

Review comment:
It is not about RAII only. It is mostly about declaration of variables near their usage. Prefer to keep variables scope minimal.
**File:** modules/calib/test/test_calibration_hand_eye.cpp
**Change Type:** modified
**Context:** PR #23189: (5.x) Merge 4.x - #16189 from mshabunin:enable-two-channels #23025 from savuor:backport3_stddev_calib_fix #23047 from fengyuentau:layer_nor...
**Review Line:** 431

**Code Changes:**
```diff
-        eps_tvec_noise[CALIB_HAND_EYE_TSAI] = 5.0e-2;
-        eps_tvec_noise[CALIB_HAND_EYE_PARK] = 5.0e-2;
-        eps_tvec_noise[CALIB_HAND_EYE_HORAUD] = 5.0e-2;
+        eps_tvec_noise[CALIB_HAND_EYE_TSAI] = 7.0e-2;
+        eps_tvec_noise[CALIB_HAND_EYE_PARK] = 7.0e-2;
+        eps_tvec_noise[CALIB_HAND_EYE_HORAUD] = 7.0e-2;
         if (eyeToHandConfig)
         {
             eps_tvec_noise[CALIB_HAND_EYE_ANDREFF] = 7.0e-2;
@@ -453,7 +453,7 @@ void CV_CalibrateHandEyeTest::run(int)
 {
```

Review comment:
Why is it changed? I have not found related PR in 3.4 history.