nareshmlx/opencv-pr huggingface dataset:
**File:** samples/cpp/tutorial_code/ImgTrans/imageSegmentation.cpp
**Change Type:** added
**Context:** PR #3632: Image Segmentation .cpp tutorial - Since it is my first trial to contribute with github, I hope that I did everything correct.

**Code Changes:**
```diff
@@ -0,0 +1,168 @@
+/**
+ * @function Watershed_and_Distance_Transform.cpp
+ * @brief Sample code showing how to segment overlapping objects using Laplacian filtering, in addition to Watershed and Distance Transformation
+ * @author OpenCV Team
+ */
+
+#include <opencv2/opencv.hpp>
+#include <iostream>
+
```

Review comment:
iterators on a vector are usually done by a size_t element in order to remove warnings. Just replace `for (int i = 0; i < contours.size(); i++)` by Just replace `for (size_t i = 0; i < contours.size(); i++)`
**File:** samples/cpp/tutorial_code/ImgTrans/imageSegmentation.cpp
**Change Type:** added
**Context:** PR #3632: Image Segmentation .cpp tutorial - Since it is my first trial to contribute with github, I hope that I did everything correct.

**Code Changes:**
```diff
@@ -0,0 +1,168 @@
+/**
+ * @function Watershed_and_Distance_Transform.cpp
+ * @brief Sample code showing how to segment overlapping objects using Laplacian filtering, in addition to Watershed and Distance Transformation
+ * @author OpenCV Team
+ */
+
+#include <opencv2/opencv.hpp>
+#include <iostream>
+
```

Review comment:
same remark as above
**File:** samples/cpp/tutorial_code/ImgTrans/imageSegmentation.cpp
**Change Type:** added
**Context:** PR #3632: Image Segmentation .cpp tutorial - Since it is my first trial to contribute with github, I hope that I did everything correct.

**Code Changes:**
```diff
@@ -0,0 +1,168 @@
+/**
+ * @function Watershed_and_Distance_Transform.cpp
+ * @brief Sample code showing how to segment overlapping objects using Laplacian filtering, in addition to Watershed and Distance Transformation
+ * @author OpenCV Team
+ */
+
+#include <opencv2/opencv.hpp>
+#include <iostream>
+
```

Review comment:
Here you need to explicitly cast the size_t to an integer by adding (int). `if (index > 0 && index <= (int)contours.size())`
**File:** samples/cpp/tutorial_code/ImgTrans/imageSegmentation.cpp
**Change Type:** added
**Context:** PR #3632: Image Segmentation .cpp tutorial - Since it is my first trial to contribute with github, I hope that I did everything correct.

**Code Changes:**
```diff
@@ -0,0 +1,168 @@
+/**
+ * @function Watershed_and_Distance_Transform.cpp
+ * @brief Sample code showing how to segment overlapping objects using Laplacian filtering, in addition to Watershed and Distance Transformation
+ * @author OpenCV Team
+ */
+
+#include <opencv2/opencv.hpp>
+#include <iostream>
+
```

Review comment:
`drawContours(markers, contours, (int)i, Scalar::all((double)i+1), -1);` else you will have a precision loss! Or you can adjust this part into `for (int i = 0; i < (int)contours.size(); i++) drawContours(markers, contours, i, Scalar::all(i+1), -1);` but that generates warnings with some compilers afail
**File:** modules/calib3d/src/solvepnp.cpp
**Change Type:** modified
**Context:** PR #3588: solvePnPRansac now accepts a seed and is deterministic - Currently, `solvePnPRansac` produces a different result each time it is called with...
**Review Line:** 363

**Code Changes:**
```diff
@@ -355,7 +360,7 @@ void cv::solvePnPRansac(InputArray _opoints, InputArray _ipoints,
                 Mat colInlierObjectPoints = inlierObjectPoints(Rect(i, 0, 1, 1));
                 objectPoints.col(index).copyTo(colInlierObjectPoints);
             }
-            solvePnP(inlierObjectPoints, inlierImagePoints, params.camera.intrinsics, params.camera.distortion, localRvec, localTvec, true, flags);
+            solvePnP(inlierObjectPoints, inlierImagePoints, params.camera.intrinsics, params.camera.distortion, localRvec, localTvec, false, flags);
         }
         localRvec.copyTo(rvec);
         localTvec.copyTo(tvec);
```

Review comment:
What is the reason of this change? In my opinion we should use true option to use previous hypothesis about pose.
**File:** modules/calib3d/src/solvepnp.cpp
**Change Type:** modified
**Context:** PR #3588: solvePnPRansac now accepts a seed and is deterministic - Currently, `solvePnPRansac` produces a different result each time it is called with...
**Review Line:** 363

**Code Changes:**
```diff
@@ -355,7 +360,7 @@ void cv::solvePnPRansac(InputArray _opoints, InputArray _ipoints,
                 Mat colInlierObjectPoints = inlierObjectPoints(Rect(i, 0, 1, 1));
                 objectPoints.col(index).copyTo(colInlierObjectPoints);
             }
-            solvePnP(inlierObjectPoints, inlierImagePoints, params.camera.intrinsics, params.camera.distortion, localRvec, localTvec, true, flags);
+            solvePnP(inlierObjectPoints, inlierImagePoints, params.camera.intrinsics, params.camera.distortion, localRvec, localTvec, false, flags);
         }
         localRvec.copyTo(rvec);
         localTvec.copyTo(tvec);
```

Review comment:
In `PnPSolver::operator()`, if a sample/iteration has more inliers than the minimum inlier count (`if ((int)inliers.size() >= parameters.minInliersCount)`), then we terminate early. Thus, if there are two samples that potentially have more inliers than `minInliersCount`, there is a race condition as to which sample will be chosen, yielding different results. One might guess that this issue is resolved by setting minInliersCount to -1, which requires all points to be inliers in order to exit early. In this situation, the `localInliers` vector will be the same for both samples, but the `localRvec` and `localTvec` variables will differ. Thus, if `localRVec` and `localTvec` are then used to compute the final `solvePnP` solution, we will have a non-determinism. Setting the `useExtrinsicGuess` option to false avoids the use of `localRvec` and `localTvec` in the final `solvePnP` solve, and thus keeps the algorithm deterministic when `minInliersCount` is `-1`.
**File:** modules/calib3d/src/solvepnp.cpp
**Change Type:** modified
**Context:** PR #3588: solvePnPRansac now accepts a seed and is deterministic - Currently, `solvePnPRansac` produces a different result each time it is called with...
**Review Line:** 363

**Code Changes:**
```diff
@@ -355,7 +360,7 @@ void cv::solvePnPRansac(InputArray _opoints, InputArray _ipoints,
                 Mat colInlierObjectPoints = inlierObjectPoints(Rect(i, 0, 1, 1));
                 objectPoints.col(index).copyTo(colInlierObjectPoints);
             }
-            solvePnP(inlierObjectPoints, inlierImagePoints, params.camera.intrinsics, params.camera.distortion, localRvec, localTvec, true, flags);
+            solvePnP(inlierObjectPoints, inlierImagePoints, params.camera.intrinsics, params.camera.distortion, localRvec, localTvec, false, flags);
         }
         localRvec.copyTo(rvec);
         localTvec.copyTo(tvec);
```

Review comment:
Ok, but as I understand, it doesn't solve the problem with random results for minInliersCount >= 1 Is it so?
**File:** modules/calib3d/src/solvepnp.cpp
**Change Type:** modified
**Context:** PR #3588: solvePnPRansac now accepts a seed and is deterministic - Currently, `solvePnPRansac` produces a different result each time it is called with...
**Review Line:** 363

**Code Changes:**
```diff
@@ -355,7 +360,7 @@ void cv::solvePnPRansac(InputArray _opoints, InputArray _ipoints,
                 Mat colInlierObjectPoints = inlierObjectPoints(Rect(i, 0, 1, 1));
                 objectPoints.col(index).copyTo(colInlierObjectPoints);
             }
-            solvePnP(inlierObjectPoints, inlierImagePoints, params.camera.intrinsics, params.camera.distortion, localRvec, localTvec, true, flags);
+            solvePnP(inlierObjectPoints, inlierImagePoints, params.camera.intrinsics, params.camera.distortion, localRvec, localTvec, false, flags);
         }
         localRvec.copyTo(rvec);
         localTvec.copyTo(tvec);
```

Review comment:
That's correct. For `minInliersCount >= 1`, we will be non-deterministic. If we wanted this case to be deterministic as well, we'd have to remove the short-circuit exit condition for when we get more inliers than `minInliersCount`. But, the performance hit we'd cause by doing this makes it not a good option, especially since the point of the `minInliersCount` is to improve performance.
**File:** modules/core/src/arithm.cpp
**Change Type:** modified
**Context:** PR #3569: SSE multiply with scale - ``` multiplyScale::Size_MatType::(640x480, 8SC1) 1.906 ms 0.150 ms 12.74 multiplyScale::Size_MatType::(640x480, 16...
**Review Line:** 2395

**Code Changes:**
```diff
+
+                __m128 v_dst2 = _mm_mul_ps(_mm_cvtepi32_ps(_mm_unpackhi_epi16(v_src1, v_zero)),
+                                           _mm_cvtepi32_ps(_mm_unpackhi_epi16(v_src2, v_zero)));
+                v_dst2 = _mm_mul_ps(v_dst2, v_scale);
+
+                __m128i v_dsti = _mm_packus_epi32(_mm_cvtps_epi32(v_dst1), _mm_cvtps_epi32(v_dst2));
+                _mm_storeu_si128((__m128i *)(dst + x), v_dsti);
+            }
+        }
+
+        return x;
```

Review comment:
Ilya, if you have time and wish to do it, may I ask you to replace _mm_packus_epi32 with a sequence of SSE2 intrinsics? For example, you may subtract 32768 from each 32-bit integer before the conversion, then use _mm_packs_epi32 and then xor the 16-bit integers with 0x8000. Otherwise, I will just merge in the PR as-is
**File:** modules/core/src/arithm.cpp
**Change Type:** modified
**Context:** PR #3569: SSE multiply with scale - ``` multiplyScale::Size_MatType::(640x480, 8SC1) 1.906 ms 0.150 ms 12.74 multiplyScale::Size_MatType::(640x480, 16...
**Review Line:** 2395

**Code Changes:**
```diff
+
+                __m128 v_dst2 = _mm_mul_ps(_mm_cvtepi32_ps(_mm_unpackhi_epi16(v_src1, v_zero)),
+                                           _mm_cvtepi32_ps(_mm_unpackhi_epi16(v_src2, v_zero)));
+                v_dst2 = _mm_mul_ps(v_dst2, v_scale);
+
+                __m128i v_dsti = _mm_packus_epi32(_mm_cvtps_epi32(v_dst1), _mm_cvtps_epi32(v_dst2));
+                _mm_storeu_si128((__m128i *)(dst + x), v_dsti);
+            }
+        }
+
+        return x;
```

Review comment:
I suggest you to merge as is, and, probably, I'll fix it later.
**File:** modules/videoio/src/cap_dc1394.cpp
**Change Type:** modified
**Context:** PR #3504: Implement VideoCapture::get as a constant method (bug fix #2625). - This is a port of #3503 Since VideoCapture::get is a getter then make it...

**Code Changes:**
```diff
@@ -1049,7 +1049,7 @@ class CvCaptureCAM_DC1394_CPP : public CvCapture
     virtual bool open( int index );
     virtual void close();
 
-    virtual double getProperty(int);
+    virtual double getProperty(int) const;
     virtual bool setProperty(int, double);
     virtual bool grabFrame();
     virtual IplImage* retrieveFrame(int);
@@ -1085,9 +1085,13 @@ IplImage* CvCaptureCAM_DC1394_CPP::retrieveFrame(int)
```

Review comment:
~~It seems that `captureDC1394` is `const` here and is passed to `icvGetPropertyCAM_DC1394( CvCaptureCAM_DC1394* capture, int property_id )`. Can you check compilation with DC1394 1.x support?~~ Now I see, it's OK, sorry.
**File:** cmake/OpenCVFindLibsVideo.cmake
**Change Type:** modified
**Context:** PR #3310: cmake: fix gstreamer check conditions - Hi all, Here is a change fixing the Gstreamer detection and the way OpenCV honor its configure optio...
**Review Line:** 16

**Code Changes:**
```diff
@@ -13,7 +13,7 @@ endif(WITH_VFW)
 # --- GStreamer ---
 ocv_clear_vars(HAVE_GSTREAMER)
 # try to find gstreamer 1.x first
-if(WITH_GSTREAMER AND NOT WITH_GSTREAMER_0_10)
+if(WITH_GSTREAMER)
   CHECK_MODULE(gstreamer-base-1.0 HAVE_GSTREAMER_BASE)
   CHECK_MODULE(gstreamer-video-1.0 HAVE_GSTREAMER_VIDEO)
   CHECK_MODULE(gstreamer-app-1.0 HAVE_GSTREAMER_APP)
@@ -29,10 +29,18 @@ if(WITH_GSTREAMER AND NOT WITH_GSTREAMER_0_10)
       set(GSTREAMER_PBUTILS_VERSION ${ALIASOF_gstreamer-pbutils-1.0_VERSION})
```

Review comment:
This change does not allow me to build OpenCV with Gstreamer 0.10 support if both versions are available.
**File:** 3rdparty/.gitignore
**Change Type:** added
**Context:** PR #3534: Assorted fixes - - cmake CMP0054 and CMP0045 - aarch64 build - portable code options in PCH cmake - some of gcc 4.9 warnings
**Review Line:** 1

**Code Changes:**
```diff
@@ -0,0 +1 @@
+ippicv
\ No newline at end of file
```

Review comment:
BTW, target branch is 2.4. There is no IPPICV related code really.
**File:** 3rdparty/.gitignore
**Change Type:** added
**Context:** PR #3534: Assorted fixes - - cmake CMP0054 and CMP0045 - aarch64 build - portable code options in PCH cmake - some of gcc 4.9 warnings
**Review Line:** 1

**Code Changes:**
```diff
@@ -0,0 +1 @@
+ippicv
\ No newline at end of file
```

Review comment:
exactly, but the folder with downloaded stuff is there when you switch to 2.4 back from master
**File:** cmake/OpenCVModule.cmake
**Change Type:** modified
**Context:** PR #3534: Assorted fixes - - cmake CMP0054 and CMP0045 - aarch64 build - portable code options in PCH cmake - some of gcc 4.9 warnings

**Code Changes:**
```diff
@@ -707,7 +707,7 @@ macro(__ocv_parse_test_sources tests_type)
       set(__file_group_sources "")
     elseif(arg STREQUAL "DEPENDS_ON")
       set(__currentvar "OPENCV_TEST_${the_module}_DEPS")
-    elseif("${__currentvar}" STREQUAL "__file_group_sources" AND NOT __file_group_name)
+    elseif(" ${__currentvar}" STREQUAL " __file_group_sources" AND NOT __file_group_name) # spaces to avoid CMP0054
       set(__file_group_name "${arg}")
     else()
       list(APPEND ${__currentvar} "${arg}")
@@ -925,17 +925,17 @@ macro(__ocv_track_module_link_dependencies the_module optkind)
```

Review comment:
You might want to add a comment here. It took me a while to figure out what was being fixed here and how.
**File:** 3rdparty/.gitignore
**Change Type:** added
**Context:** PR #3534: Assorted fixes - - cmake CMP0054 and CMP0045 - aarch64 build - portable code options in PCH cmake - some of gcc 4.9 warnings
**Review Line:** 1

**Code Changes:**
```diff
@@ -0,0 +1 @@
+ippicv
\ No newline at end of file
```

Review comment:
I don't think that makes it worthy of ignoring in 2.4. 2.4 shouldn't depend on what's happening in master. If it bothers you that much, you can put it in `.git/info/exclude`.
**File:** cmake/OpenCVModule.cmake
**Change Type:** modified
**Context:** PR #3534: Assorted fixes - - cmake CMP0054 and CMP0045 - aarch64 build - portable code options in PCH cmake - some of gcc 4.9 warnings

**Code Changes:**
```diff
@@ -707,7 +707,7 @@ macro(__ocv_parse_test_sources tests_type)
       set(__file_group_sources "")
     elseif(arg STREQUAL "DEPENDS_ON")
       set(__currentvar "OPENCV_TEST_${the_module}_DEPS")
-    elseif("${__currentvar}" STREQUAL "__file_group_sources" AND NOT __file_group_name)
+    elseif(" ${__currentvar}" STREQUAL " __file_group_sources" AND NOT __file_group_name) # spaces to avoid CMP0054
       set(__file_group_name "${arg}")
     else()
       list(APPEND ${__currentvar} "${arg}")
@@ -925,17 +925,17 @@ macro(__ocv_track_module_link_dependencies the_module optkind)
```

Review comment:
yes, good point.
**File:** data/CMakeLists.txt
**Change Type:** modified
**Context:** PR #3530: Install test data on Windows platform too - if `OPENCV_TEST_DATA_PATH` CMake option was set and `INSTALL_TESTS` is `TRUE`.
**Review Line:** 13

**Code Changes:**
```diff
-    install(DIRECTORY ${OPENCV_TEST_DATA_PATH}
-            DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE
-              GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-            DESTINATION share/OpenCV/testdata COMPONENT tests)
-  endif()
+  install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests")
 endif()
\ No newline at end of file
```

Review comment:
What about that problem with permissions?
**File:** data/CMakeLists.txt
**Change Type:** modified
**Context:** PR #3530: Install test data on Windows platform too - if `OPENCV_TEST_DATA_PATH` CMake option was set and `INSTALL_TESTS` is `TRUE`.
**Review Line:** 13

**Code Changes:**
```diff
-    install(DIRECTORY ${OPENCV_TEST_DATA_PATH}
-            DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE
-              GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-            DESTINATION share/OpenCV/testdata COMPONENT tests)
-  endif()
+  install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests")
 endif()
\ No newline at end of file
```

Review comment:
CPack uses permissions from FS without changes. If user umask is configured not correctly we always be in trouble. The problem can be solved by build automation like BuildBot easer, especially with recursive installation. I propose to remove comment, but we need to mention the problem in some document about packaging. :+1:
**File:** modules/core/src/matrix.cpp
**Change Type:** modified
**Context:** PR #3531: Finish cuda core part refactoring

**Code Changes:**
```diff
@@ -1187,18 +1187,18 @@ Mat _InputArray::getMat(int i) const
         return Mat();
     }
 
-    if( k == GPU_MAT )
+    if( k == CUDA_GPU_MAT )
     {
         CV_Assert( i < 0 );
         CV_Error(cv::Error::StsNotImplemented, "You should explicitly call download method for cuda::GpuMat object");
         return Mat();
```

Review comment:
May be remove dead code here.
**File:** modules/ml/include/opencv2/ml/ml.hpp
**Change Type:** modified
**Context:** PR #395: Made changes to allow ml module to work with big data.
**Review Line:** 799

**Code Changes:**
```diff
@@ -796,7 +796,7 @@ struct CV_EXPORTS CvDTreeTrainData
     const CvMat* responses;
     CvMat* responses_copy; // used in Boosting
 
-    int buf_count, buf_size;
+    int buf_count, buf_size; // buf_size is obsolete, please do not use it, use expression ((int64)buf->rows * (int64)buf->cols / buf_count) instead
     bool shared;
     int is_buf_16u;
 
@@ -806,6 +806,12 @@ struct CV_EXPORTS CvDTreeTrainData
 
```

Review comment:
Can this field be completely removed in master?
**File:** modules/photo/src/calibrate.cpp
**Change Type:** modified
**Context:** PR #3485: fix crash when sample point out of image boundaries - Sample point goes out of image boundaries under certain circumstances. This causes cra...
**Review Line:** 92

**Code Changes:**
```diff
@@ -89,7 +89,7 @@ class CalibrateDebevecImpl : public CalibrateDebevec
             int step_y = images[0].rows / y_points;
 
             for(int i = 0, x = step_x / 2; i < x_points; i++, x += step_x) {
-                for(int j = 0, y = step_y; j < y_points; j++, y += step_y) {
+                for(int j = 0, y = step_y / 2; j < y_points; j++, y += step_y) {
                     sample_points.push_back(Point(x, y));
                 }
             }
```

Review comment:
Reproducible with following values: ``` images[0].cols = 12288 images[0].rows = 6144 samples = 70 ``` Then `x_points = 11`, `y_points = 6`, `step_x = 1117`, `step_y = 1024`. Max possible `y` coordinate should be `images[0].rows - 1` but `y_points * step_y = 6 * 1024 = 6144 = images[0].rows`.
**File:** modules/videoio/src/cap_ios_abstract_camera.mm
**Change Type:** modified
**Context:** PR #3292: Fixed iOS framework compilation warnings - - Fixed or disabled some warnings produced by clang compiler during iOS frameworks build. - Extra...
**Review Line:** 153

**Code Changes:**
```diff
@@ -150,6 +150,7 @@ - (void)dealloc;
 {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
+    [super dealloc];
 }
 
 
@@ -226,6 +227,7 @@ - (void)switchCameras;
 
```

Review comment:
I'm not sure about this
**File:** modules/stitching/src/matchers.cpp
**Change Type:** modified
**Context:** PR #3292: Fixed iOS framework compilation warnings - - Fixed or disabled some warnings produced by clang compiler during iOS frameworks build. - Extra...
**Review Line:** 353

**Code Changes:**
```diff
 #else
+    (void)hess_thresh;
+    (void)num_octaves;
+    (void)num_layers;
+    (void)num_octaves_descr;
+    (void)num_layers_descr;
     CV_Error( Error::StsNotImplemented, "OpenCV was built without SURF support" );
 #endif
 }
```

Review comment:
Do we have something similar to `#define PNG_UNUSED(param) (void)param;` to mark unused parameters?
**File:** modules/imgproc/src/pyramids.cpp
**Change Type:** modified
**Context:** PR #3292: Fixed iOS framework compilation warnings - - Fixed or disabled some warnings produced by clang compiler during iOS frameworks build. - Extra...
**Review Line:** 248

**Code Changes:**
```diff
 
             v_r00 = vaddq_s32(vqaddq_s32(v_r00, v_r40), vqaddq_s32(v_r20, v_r20));
             v_r10 = vaddq_s32(vqaddq_s32(v_r10, v_r20), v_r30);
-            int32x4_t v_dst0 = vshrq_n_s32(vaddq_s32(vqaddq_s32(v_r00, vshlq_n_s32(v_r10, 2)), v_delta), 8);
+
+            shifted = vshlq_n_s32(v_r10, 2);
+            int32x4_t v_dst0 = vshrq_n_s32(vaddq_s32(vqaddq_s32(v_r00, shifted), v_delta), 8);
 
             v_r01 = vaddq_s32(vqaddq_s32(v_r01, v_r41), vqaddq_s32(v_r21, v_r21));
             v_r11 = vaddq_s32(vqaddq_s32(v_r11, v_r21), v_r31);
-            int32x4_t v_dst1 = vshrq_n_s32(vaddq_s32(vqaddq_s32(v_r01, vshlq_n_s32(v_r11, 2)), v_delta), 8);
```

Review comment:
why do we need an intermediate variable?
**File:** modules/imgproc/src/pyramids.cpp
**Change Type:** modified
**Context:** PR #3292: Fixed iOS framework compilation warnings - - Fixed or disabled some warnings produced by clang compiler during iOS frameworks build. - Extra...
**Review Line:** 248

**Code Changes:**
```diff
 
             v_r00 = vaddq_s32(vqaddq_s32(v_r00, v_r40), vqaddq_s32(v_r20, v_r20));
             v_r10 = vaddq_s32(vqaddq_s32(v_r10, v_r20), v_r30);
-            int32x4_t v_dst0 = vshrq_n_s32(vaddq_s32(vqaddq_s32(v_r00, vshlq_n_s32(v_r10, 2)), v_delta), 8);
+
+            shifted = vshlq_n_s32(v_r10, 2);
+            int32x4_t v_dst0 = vshrq_n_s32(vaddq_s32(vqaddq_s32(v_r00, shifted), v_delta), 8);
 
             v_r01 = vaddq_s32(vqaddq_s32(v_r01, v_r41), vqaddq_s32(v_r21, v_r21));
             v_r11 = vaddq_s32(vqaddq_s32(v_r11, v_r21), v_r31);
-            int32x4_t v_dst1 = vshrq_n_s32(vaddq_s32(vqaddq_s32(v_r01, vshlq_n_s32(v_r11, 2)), v_delta), 8);
```

Review comment:
In clang's `arm_neon.h` these methods are declared using macros: ``` #define vshlq_n_s32(a, __b) __extension__ ({ \ int32x4_t __a = (a); \ (int32x4_t)__builtin_neon_vshlq_n_v((int8x16_t)__a, __b, 18); }) #define vshrq_n_s32(a, __b) __extension__ ({ \ int32x4_t __a = (a); \ (int32x4_t)__builtin_neon_vshrq_n_v((int8x16_t)__a, __b, 18); }) ``` And we get compiler warning: ``` warning: declaration shadows a local variable [-Wshadow] int32x4_t v_dst0 = vshrq_n_s32(vaddq_s32(vqaddq_s32(v_r00, vshlq_n_s32(v_r10, 2)), v_delta), 8); ^ note: expanded from macro 'vshlq_n_s32' int32x4_t __a = (a); \ ^ note: expanded from macro 'vshrq_n_s32' int32x4_t __a = (a); \ ^ ``` ... and GCC uses inline methods for this. I've compared execution time of some of `opencv_test_imgproc` shards on [build 133](http://pullrequest.opencv.org/buildbot/builders/precommit_arm/builds/133) and [build 134](http://pullrequest.opencv.org/buildbot/builders/precommit_arm/builds/134), it is same.
**File:** modules/calib3d/test/test_fisheye.cpp
**Change Type:** added
**Context:** PR #2949: Merge 2.4 into master - Original pull requests: - #2071 from pemmanuelviel:LshOrthogonalSubvectors - #2705 from KonstantinMatskevich:face_re...

**Code Changes:**
```diff
@@ -0,0 +1,613 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+//  By downloading, copying, installing or using the software you agree to this license.
+//  If you do not agree to this license, do not download, install,
+//  copy or use the software.
+//
+//
```

Review comment:
put DISABLED_ here