nareshmlx/opencv-pr huggingface dataset:
**File:** modules/core/src/matrix.cpp
**Change Type:** modified
**Context:** PR #27362: Fix empty ND-array construction
**Review Line:** 318

**Code Changes:**
```diff
@@ -315,7 +315,7 @@ void finalizeHdr(Mat& m)
         m.rows = m.cols = -1;
     if(m.u)
         m.datastart = m.data = m.u->data;
-    if( m.data )
+    if( m.data && d > 0 )
     {
         m.datalimit = m.datastart + m.size[0]*m.step[0];
         if( m.size[0] > 0 )
@@ -328,7 +328,7 @@ void finalizeHdr(Mat& m)
             m.dataend = m.datalimit;
```

Review comment:
adding `d > 0` is fine. I'd also suggest to modify the else branch: ``` else m.dataend = m.datalimit = 0; ``` to ``` else m.dataend = m.datalimit = m.data; ``` that will make behaviour of both constructors of an empty matrix more consistent.
**File:** modules/core/test/test_mat.cpp
**Change Type:** modified
**Context:** PR #27362: Fix empty ND-array construction
**Review Line:** 1466

**Code Changes:**
```diff
+    EXPECT_LE(mat_nd.total(), 1u);
+    EXPECT_FALSE(mat_nd.empty());
+#endif
+    EXPECT_EQ(mat.total(), 0u);
+    EXPECT_TRUE(mat.empty());
+}
+
 TEST(Core_InputArray, empty)
 {
     vector<vector<Point> > data;
```

Review comment:
> // 0 for 4.x, 1 for 5.x Do we really to introduce support in OpenCV 4.x for functionality which has different behavior in OpenCV 5.x.
**File:** doc/tutorials/dnn/dnn_openvino/dnn_openvino.markdown
**Change Type:** modified
**Context:** PR #27363: Feature: Add OpenVINO NPU support

**Code Changes:**
```diff
@@ -26,3 +26,14 @@ There are 2 approaches how to get OpenCV:
 - Build OpenCV from source code against specific version of OpenVINO. This approach solves the limitations mentioned above.
 
 The instruction how to follow both approaches is provided in [OpenCV wiki](https://github.com/opencv/opencv/wiki/BuildOpenCV4OpenVINO).
+
+## Supported targets
+
+OpenVINO backend (DNN_BACKEND_INFERENCE_ENGINE) supports the following [targets](https://docs.opencv.org/4.x/d6/d0f/group__dnn.html#ga709af7692ba29788182cf573531b0ff5):
+
+- **DNN_TARGET_CPU:** Runs on the CPU, no additional dependencies required.
```

Review comment:
Try use `&reg;` instead of ®
**File:** doc/tutorials/dnn/dnn_openvino/dnn_openvino.markdown
**Change Type:** modified
**Context:** PR #27363: Feature: Add OpenVINO NPU support

**Code Changes:**
```diff
@@ -26,3 +26,14 @@ There are 2 approaches how to get OpenCV:
 - Build OpenCV from source code against specific version of OpenVINO. This approach solves the limitations mentioned above.
 
 The instruction how to follow both approaches is provided in [OpenCV wiki](https://github.com/opencv/opencv/wiki/BuildOpenCV4OpenVINO).
+
+## Supported targets
+
+OpenVINO backend (DNN_BACKEND_INFERENCE_ENGINE) supports the following [targets](https://docs.opencv.org/4.x/d6/d0f/group__dnn.html#ga709af7692ba29788182cf573531b0ff5):
+
+- **DNN_TARGET_CPU:** Runs on the CPU, no additional dependencies required.
```

Review comment:
fixed for &trade; too
**File:** modules/imgproc/test/test_fitellipse.cpp
**Change Type:** modified
**Context:** PR #26299: Add getClosestEllipsePoints() function to get the closest point on an ellipse

**Code Changes:**
```diff
@@ -113,4 +113,197 @@ TEST(Imgproc_FitEllipse_HorizontalLine, accuracy) {
     EXPECT_NEAR(el.angle, 90, 0.1);
 }
 
+template<typename T>
+static float get_ellipse_fitting_error(const std::vector<T>& points, const Mat& closest_points) {
+    float mse = 0.0f;
+    for (int i = 0; i < static_cast<int>(points.size()); i++)
+    {
+        Point2f pt_err = Point2f(static_cast<float>(points[i].x), static_cast<float>(points[i].y)) - closest_points.at<Point2f>(i);
```

Review comment:
Check correctness
**File:** modules/imgproc/src/shapedescr.cpp
**Change Type:** modified
**Context:** PR #26299: Add getClosestEllipsePoints() function to get the closest point on an ellipse

**Code Changes:**
```diff
@@ -877,6 +877,121 @@ cv::RotatedRect cv::fitEllipseDirect( InputArray _points )
     return box;
 }
 
+namespace cv
+{
+// @misc{Chatfield2017,
+//   author = {Chatfield, Carl},
+//   title = {A Simple Method for Distance to Ellipse},
+//   year = {2017},
```

Review comment:
Keep using Matx instead of Mat, since Matx is instantly allocated on stack and for Matx there is also overloaded '*' opereator. Here you basically initialize quite big structure Mat and allocate the Mat data in heap for each single point, which is very bad.
**File:** modules/imgproc/test/test_subdivision2d.cpp
**Change Type:** modified
**Context:** PR #27149: Fix #25696: Solved the problem in Subdiv2D, empty delaunay triangulation

**Code Changes:**
```diff
@@ -50,4 +50,18 @@ TEST(Imgproc_Subdiv2D_getTriangleList, regression_5788)
     EXPECT_EQ(trig_cnt, 105);
 }
 
+TEST(Imgproc_Subdiv2D, issue_25696) {
+    std::vector<cv::Point2f> points{
+        {0, 0}, {40, 40}, {84, 104}, {86, 108}
+    };
+
+    cv::Rect subdivRect{cv::Point{-10, -10}, cv::Point{96, 118}};
```

Review comment:
CI Warning: ``` warning: comparison of integers of different signs: 'const unsigned long' and 'const int' [-Wsign-compare] ``` Also GTest macro signature says that expected value should go first.
**File:** modules/core/include/opencv2/core/hal/intrin_legacy_ops.h
**Change Type:** added
**Context:** PR #27327: Restored legacy intrinsics operators in a separate header - resolves #27267 * New header with removed universal intrinsics operator overloa...
**Review Line:** 22

**Code Changes:**
```diff
+#warning "Operators might conflict with built-in functions on RISC-V platform"
+#endif
+
+#if defined(CV_VERSION) && CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR < 11
+#warning "Older versions of OpenCV (<4.11) already have Universal Intrinscs operators"
+#endif
+
+
+namespace cv { namespace hal {
+
+#define BIN_OP(OP, FUN) \
```

Review comment:
It is only since OpenCV 4.11 the Universal Intrinscs operators have been removed? I don't understand, I had to [fix some code](https://github.com/lagadic/visp/commit/9ed0300507e13dddd83fd62a799f5039025ea44e) since OpenCV 4.9 release. https://github.com/opencv/opencv/pull/24371
**File:** modules/calib3d/src/solvepnp.cpp
**Change Type:** modified
**Context:** PR #27311: Added warning if projected axes are out of camera frame in drawAxes
**Review Line:** 123

**Code Changes:**
```diff
+        allIn &= imageRect.contains(imagePoints[i]);
+    }
+
+    if (!allIn)
+    {
+        CV_LOG_WARNING(NULL, "Some of projected axes endpoints are out of frame. The drawn axes may be not relaible.");
+    }
+
     // draw axes lines
     line(image, imagePoints[0], imagePoints[1], Scalar(0, 0, 255), thickness);
     line(image, imagePoints[0], imagePoints[2], Scalar(0, 255, 0), thickness);
```

Review comment:
> relaible Small typo. I am not a native english speaker, my proposition: &#8594; "Some of the projected axes endpoints are outside of the image bounds. The drawn axes may not be reliable with strong lens distortion ." (accurate / correct instead?) <details> <summary>off topic</summary> 
 --- I would add in the message something like this: - "You may want to pass a zero-distortion coefficient vector to avoid this issue." (or NULL?) This should be the simplest workaround since most likely `drawFrameAxes` would be used for debugging / display purposes (no need for accurate display in my opinion). --- Maybe another approach would be? - `projectPoints` without distortion - clip the coordinates inside the image rectangle - add distortion - draw the frame axes
 </details>
**File:** modules/calib3d/src/solvepnp.cpp
**Change Type:** modified
**Context:** PR #27311: Added warning if projected axes are out of camera frame in drawAxes
**Review Line:** 123

**Code Changes:**
```diff
+        allIn &= imageRect.contains(imagePoints[i]);
+    }
+
+    if (!allIn)
+    {
+        CV_LOG_WARNING(NULL, "Some of projected axes endpoints are out of frame. The drawn axes may be not relaible.");
+    }
+
     // draw axes lines
     line(image, imagePoints[0], imagePoints[1], Scalar(0, 0, 255), thickness);
     line(image, imagePoints[0], imagePoints[2], Scalar(0, 255, 0), thickness);
```

Review comment:
> "You may want to pass a zero-distortion coefficient vector to avoid this issue." (or NULL?) It generates incorrect result for cameras with visible distortion. Axes will be shifted from expected location.
**File:** modules/gapi/CMakeLists.txt
**Change Type:** modified
**Context:** PR #27355: Check MS Media Foundation availability in G-API too
**Review Line:** 384

**Code Changes:**
```diff
@@ -380,6 +380,15 @@ if(WIN32)
   ocv_target_link_libraries(${the_module} PRIVATE wsock32 ws2_32)
 endif()
 
+ocv_option(OPENCV_GAPI_MSMF "Build G-API with MS Media Foundation support" HAVE_MSMF)
+if(HAVE_MSMF AND OPENCV_GAPI_MSMF)
+  if(TARGET opencv_test_gapi)
+    ocv_target_compile_definitions(opencv_test_gapi PRIVATE -DHAVE_GAPI_MSMF)
+  endif()
+  ocv_target_compile_definitions(${the_module} PRIVATE -DHAVE_GAPI_MSMF)
+  ocv_target_link_libraries(${the_module} PRIVATE ocv.3rdparty.msmf)
```

Review comment:
OPENCV_GAPU_MSMF OPENCV_GAPI_MSMF typo
**File:** modules/gapi/CMakeLists.txt
**Change Type:** modified
**Context:** PR #27355: Check MS Media Foundation availability in G-API too
**Review Line:** 384

**Code Changes:**
```diff
@@ -380,6 +380,15 @@ if(WIN32)
   ocv_target_link_libraries(${the_module} PRIVATE wsock32 ws2_32)
 endif()
 
+ocv_option(OPENCV_GAPI_MSMF "Build G-API with MS Media Foundation support" HAVE_MSMF)
+if(HAVE_MSMF AND OPENCV_GAPI_MSMF)
+  if(TARGET opencv_test_gapi)
+    ocv_target_compile_definitions(opencv_test_gapi PRIVATE -DHAVE_GAPI_MSMF)
+  endif()
+  ocv_target_compile_definitions(${the_module} PRIVATE -DHAVE_GAPI_MSMF)
+  ocv_target_link_libraries(${the_module} PRIVATE ocv.3rdparty.msmf)
```

Review comment:
`TARGET ocv.3rdparty.msmf` should be used instead of `HAVE_MSMF`.
**File:** modules/gapi/CMakeLists.txt
**Change Type:** modified
**Context:** PR #27355: Check MS Media Foundation availability in G-API too
**Review Line:** 389

**Code Changes:**
```diff
+if(HAVE_MSMF AND OPENCV_GAPI_MSMF)
+  if(TARGET opencv_test_gapi)
+    ocv_target_compile_definitions(opencv_test_gapi PRIVATE -DHAVE_GAPI_MSMF)
+  endif()
+  ocv_target_compile_definitions(${the_module} PRIVATE -DHAVE_GAPI_MSMF)
+  ocv_target_link_libraries(${the_module} PRIVATE ocv.3rdparty.msmf)
+endif()
+
 if(HAVE_DIRECTML)
   ocv_target_compile_definitions(${the_module} PRIVATE HAVE_DIRECTML=1)
 endif()
```

Review comment:
`HAVE_MSMF` already comes with target `ocv.3rdparty.msmf`
**File:** modules/core/test/test_math.cpp
**Change Type:** modified
**Context:** PR #27331: Add tests for solveCubic
**Review Line:** 2539

**Code Changes:**
```diff
+        EXPECT_NEAR(roots[0], 1., 1e-8);
+        EXPECT_NEAR(roots[1], 2., 1e-8);
+        if (num_roots == 3)
+        {
+            EXPECT_NEAR(roots[2], 2., 1e-8);
+        }
+    }
+
+    {
+        const std::vector<double> coeffs{2., -12., 22., -12.};
+        std::vector<double> roots;
```

Review comment:
I would expect deterministic behavour on amount of solutions on all platforms. Is not it?
**File:** modules/core/test/test_math.cpp
**Change Type:** modified
**Context:** PR #27331: Add tests for solveCubic
**Review Line:** 2585

**Code Changes:**
```diff
+        EXPECT_NEAR(roots[0], 1., 1e-8);
+        EXPECT_NEAR(roots[1], 2., 1e-8);
+        if (num_roots == 3)
+        {
+            EXPECT_NEAR(roots[2], 2., 1e-8);
+        }
+    }
+
+    {
+        const std::vector<double> coeffs{-6., 11., -6.};
+        std::vector<double> roots;
```

Review comment:
The same issue.
**File:** modules/core/test/test_math.cpp
**Change Type:** modified
**Context:** PR #27331: Add tests for solveCubic
**Review Line:** 2539

**Code Changes:**
```diff
+        EXPECT_NEAR(roots[0], 1., 1e-8);
+        EXPECT_NEAR(roots[1], 2., 1e-8);
+        if (num_roots == 3)
+        {
+            EXPECT_NEAR(roots[2], 2., 1e-8);
+        }
+    }
+
+    {
+        const std::vector<double> coeffs{2., -12., 22., -12.};
+        std::vector<double> roots;
```

Review comment:
The test is about: ``` 2 * x^3 - 10 * x^2 + 16 * x - 8 = 2 * (x - 1) * (x - 2)^2 = 0 ``` So, it has `2` roots - `1` and `2` (with multiplicity equal to `2`). But on some platforms due to round-off error implementation says that it has `3` roots - `1`, `2 + eps1` and `2 + eps2` (so, it gives `2` roots almost equal to `2` but considers them different). Considering that this is a numerical algorithm, both answers are adequate and not so different P.S. Implementation does not take round-off error into account at all (it always compare doubles with equality sign (without any tolerances)). Taking round-off error into account may lead to a very strong change in behavior in some cases (e.g., change like https://github.com/pi-squared/opencv/commit/665c45e47cde437bad4b549b875f53e0b7a8f631 will lead to that some cubic equations now will be assumed as quadratic (and roots can change dramatically)) There is no winning option here - so that in all cases the implementation will behave as expected (in some cases small coefficient will mean round-off error and that it is equal to zero, in another - that it is small non-zero coefficient)
**File:** hal/riscv-rvv/src/imgproc/histogram.cpp
**Change Type:** modified
**Context:** PR #27332: hal/imgproc: add hal for calcHist and implement in hal/riscv-rvv
**Review Line:** 268

**Code Changes:**
```diff
+                    }
+                }
+                p0 += step0;
+            }
+        }
+    }
+
+    if (accumulate) {
+        cvt32s32f_add32f(ihist+1, hist_data, hist_size);
+    } else {
+        std::memset(hist_data, 0, sizeof(float)*hist_size);
```

Review comment:
It makes sense to return not_implemented for other depth. Just in case of new types support in 5.x.
**File:** 3rdparty/hal_rvv/hal_rvv_1p0/integral.hpp
**Change Type:** added
**Context:** PR #27060: [hal_rvv] Add cv::integral implementation and more types of input for test

**Code Changes:**
```diff
@@ -0,0 +1,173 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+
+// Copyright (C) 2025, Institute of Software, Chinese Academy of Sciences.
+
+#ifndef OPENCV_HAL_RVV_INTEGRAL_HPP_INCLUDED
+#define OPENCV_HAL_RVV_INTEGRAL_HPP_INCLUDED
+
```

Review comment:
Do not expose the `struct rvv` into `cv_hal_rvv` namespace, see https://github.com/opencv/opencv/pull/26865#discussion_r1977097854.
**File:** 3rdparty/hal_rvv/hal_rvv_1p0/types.hpp
**Change Type:** modified
**Context:** PR #27060: [hal_rvv] Add cv::integral implementation and more types of input for test
**Review Line:** 705

**Code Changes:**
```diff
+    template <size_t idx>                                                     \
+    inline void vset(TWO::VecType v, ONE::VecType val) {                      \
+        __riscv_vset_v_##TYPE##ONE_LMUL##_##TYPE##TWO_LMUL(v, idx, val);      \
+    }                                                                         \
+    inline TWO::VecType vcreate(ONE::VecType v0, ONE::VecType v1) {           \
+        return __riscv_vcreate_v_##TYPE##ONE_LMUL##_##TYPE##TWO_LMUL(v0, v1); \
+    }
+#endif
+
+HAL_RVV_GROUP(RVV_I8M1, RVV_I8M2, i8, m1, m2)
+HAL_RVV_GROUP(RVV_I8M2, RVV_I8M4, i8, m2, m4)
```

Review comment:
`vcreate` is not supported in clang 17. Use this instead. ```cpp vuint8m2_t v{}; v = __riscv_vset_v_u8m1_u8m2(v, 0, x); v = __riscv_vset_v_u8m1_u8m2(v, 1, y); ```
**File:** 3rdparty/hal_rvv/hal_rvv_1p0/types.hpp
**Change Type:** modified
**Context:** PR #27060: [hal_rvv] Add cv::integral implementation and more types of input for test
**Review Line:** 705

**Code Changes:**
```diff
+    template <size_t idx>                                                     \
+    inline void vset(TWO::VecType v, ONE::VecType val) {                      \
+        __riscv_vset_v_##TYPE##ONE_LMUL##_##TYPE##TWO_LMUL(v, idx, val);      \
+    }                                                                         \
+    inline TWO::VecType vcreate(ONE::VecType v0, ONE::VecType v1) {           \
+        return __riscv_vcreate_v_##TYPE##ONE_LMUL##_##TYPE##TWO_LMUL(v0, v1); \
+    }
+#endif
+
+HAL_RVV_GROUP(RVV_I8M1, RVV_I8M2, i8, m1, m2)
+HAL_RVV_GROUP(RVV_I8M2, RVV_I8M4, i8, m2, m4)
```

Review comment:
I prefer both. Note that `__riscv_vset` needs an immediate number for the second argument.
**File:** 3rdparty/libtiff/tif_hash_set.c
**Change Type:** modified
**Context:** PR #27343: build: fix more warnings from recent gcc versions after #27337
**Review Line:** 370

**Code Changes:**
```diff
@@ -367,7 +367,7 @@ static bool TIFFHashSetRehash(TIFFHashSet *set)
 {
     int nNewAllocatedSize = anPrimes[set->nIndiceAllocatedSize];
     TIFFList **newTabList =
-        (TIFFList **)(calloc(sizeof(TIFFList *), nNewAllocatedSize));
+        (TIFFList **)(calloc(nNewAllocatedSize, sizeof(TIFFList *)));
     if (newTabList == NULL)
         return false;
 #ifdef HASH_DEBUG
```

Review comment:
Upstream of libtiff has fixed this: https://gitlab.com/libtiff/libtiff/-/blob/master/libtiff/tif_hash_set.c#L370
**File:** 3rdparty/libtiff/tif_hash_set.c
**Change Type:** modified
**Context:** PR #27343: build: fix more warnings from recent gcc versions after #27337
**Review Line:** 149

**Code Changes:**
```diff
@@ -146,7 +146,7 @@ TIFFHashSet *TIFFHashSetNew(TIFFHashSetHashFunc fnHashFunc,
     set->fnEqualFunc = fnEqualFunc ? fnEqualFunc : TIFFHashSetEqualPointer;
     set->fnFreeEltFunc = fnFreeEltFunc;
     set->nSize = 0;
-    set->tabList = (TIFFList **)(calloc(sizeof(TIFFList *), 53));
+    set->tabList = (TIFFList **)(calloc(53, sizeof(TIFFList *)));
     if (set->tabList == NULL)
     {
         free(set);
@@ -367,7 +367,7 @@ static bool TIFFHashSetRehash(TIFFHashSet *set)
 {
```

Review comment:
Upstream of libtiff has fixed this: https://gitlab.com/libtiff/libtiff/-/blob/master/libtiff/tif_hash_set.c#L149
**File:** modules/dnn/src/legacy_backend.hpp
**Change Type:** modified
**Context:** PR #27307: TFLite fixes for Face Blendshapes V2
**Review Line:** 216

**Code Changes:**
```diff
@@ -213,6 +213,7 @@ struct BlobManager
             {
                 reuse(bestBlobPin, lp);
                 dst = bestBlob.reshape(1, 1).colRange(0, targetTotal).reshape(1, shape);
+                dst.dims = shape.size();
                 return;
             }
         }
```

Review comment:
Probably, make sense to move to a separate PR?
**File:** modules/core/include/opencv2/core/hal/intrin_wasm.hpp
**Change Type:** modified
**Context:** PR #26109: Replace operators with wrapper functions on universal intrinsics backends
**Review Line:** 1697

**Code Changes:**
```diff
 }
 inline unsigned v_reduce_sad(const v_int8x16& a, const v_int8x16& b)
 {
@@ -1703,19 +1696,19 @@ inline unsigned v_reduce_sad(const v_int8x16& a, const v_int8x16& b)
     v_expand(v_absdiff(a, b), l16, h16);
     v_expand(l16, l16_l32, l16_h32);
     v_expand(h16, h16_l32, h16_h32);
-    return v_reduce_sum(l16_l32+l16_h32+h16_l32+h16_h32);
+    return v_reduce_sum(v_add(v_add(l16_l32, l16_h32), v_add(h16_l32, h16_h32)));
 }
 inline unsigned v_reduce_sad(const v_uint16x8& a, const v_uint16x8& b)
```

Review comment:
you can reduce amount of operations here like (a+b) + (c+d).
**File:** modules/core/test/test_intrin_utils.hpp
**Change Type:** modified
**Context:** PR #27337: build: fix warnings from recent gcc versions

**Code Changes:**
```diff
@@ -24,6 +24,17 @@ void test_hal_intrin_float16();
 
 //==================================================================================================
 
+#if defined (__GNUC__) && defined(__has_warning)
+    #if __has_warning("-Wmaybe-uninitialized")
+        #define CV_DISABLE_GCC_MAYBE_UNINITIALIZED_WARNINGS
+    #endif
+#endif
+
```

Review comment:
Conditions are the same. Is it a typo?
**File:** modules/imgcodecs/src/grfmt_png.cpp
**Change Type:** modified
**Context:** PR #27297: imgcodecs: png: add log if first chunk is not IHDR
**Review Line:** 297

**Code Changes:**
```diff
+    {
+        CV_LOG_ERROR(NULL, "CgBI chunk (Apple private) found as the first chunk. IHDR is expected.");
+        return false;
+    }
     if (id != id_IHDR)
+    {
+        CV_LOG_ERROR(NULL, "IHDR chunk shall be first. This data may be broken or malformed.");
         return false;
+    }
 
     m_is_fcTL_loaded = false;
```

Review comment:
chatGPT suggests ``` if (id == id_CgBI) { CV_LOG_ERROR(NULL, "CgBI chunk (Apple private) found as the first chunk. IHDR is expected."); } else { CV_LOG_ERROR(NULL, "IHDR chunk shall be first. This data may be broken or malformed."); } ```
**File:** modules/imgproc/src/median_blur.simd.hpp
**Change Type:** modified
**Context:** PR #27299: imgproc: medianblur: Performance improvement

**Code Changes:**
```diff
@@ -13,6 +13,7 @@
 // Copyright (C) 2000-2008, 2018, Intel Corporation, all rights reserved.
 // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
 // Copyright (C) 2014-2015, Itseez Inc., all rights reserved.
+// Copyright (C) 2025, Advanced Micro Devices, all rights reserved.
 // Third party copyrights are property of their respective owners.
 //
 // Redistribution and use in source and binary forms, with or without modification,
@@ -693,8 +694,16 @@ medianBlur_SortNet( const Mat& _src, Mat& _dst, int m )
 #else
```

Review comment:
I propose to replace it with if..else or more usual `offset = ? : ; j+= offset;`
**File:** modules/imgproc/src/median_blur.simd.hpp
**Change Type:** modified
**Context:** PR #27299: imgproc: medianblur: Performance improvement

**Code Changes:**
```diff
@@ -13,6 +13,7 @@
 // Copyright (C) 2000-2008, 2018, Intel Corporation, all rights reserved.
 // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
 // Copyright (C) 2014-2015, Itseez Inc., all rights reserved.
+// Copyright (C) 2025, Advanced Micro Devices, all rights reserved.
 // Third party copyrights are property of their respective owners.
 //
 // Redistribution and use in source and binary forms, with or without modification,
@@ -693,8 +694,16 @@ medianBlur_SortNet( const Mat& _src, Mat& _dst, int m )
 #else
```

Review comment:
The same remark on condition.
**File:** modules/imgproc/src/median_blur.simd.hpp
**Change Type:** modified
**Context:** PR #27299: imgproc: medianblur: Performance improvement

**Code Changes:**
```diff
@@ -13,6 +13,7 @@
 // Copyright (C) 2000-2008, 2018, Intel Corporation, all rights reserved.
 // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
 // Copyright (C) 2014-2015, Itseez Inc., all rights reserved.
+// Copyright (C) 2025, Advanced Micro Devices, all rights reserved.
 // Third party copyrights are property of their respective owners.
 //
 // Redistribution and use in source and binary forms, with or without modification,
@@ -693,8 +694,16 @@ medianBlur_SortNet( const Mat& _src, Mat& _dst, int m )
 #else
```

Review comment:
This has been modified as well.
**File:** modules/imgproc/src/median_blur.simd.hpp
**Change Type:** modified
**Context:** PR #27299: imgproc: medianblur: Performance improvement

**Code Changes:**
```diff
@@ -13,6 +13,7 @@
 // Copyright (C) 2000-2008, 2018, Intel Corporation, all rights reserved.
 // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
 // Copyright (C) 2014-2015, Itseez Inc., all rights reserved.
+// Copyright (C) 2025, Advanced Micro Devices, all rights reserved.
 // Third party copyrights are property of their respective owners.
 //
 // Redistribution and use in source and binary forms, with or without modification,
@@ -693,8 +694,16 @@ medianBlur_SortNet( const Mat& _src, Mat& _dst, int m )
 #else
```

Review comment:
What if _dst.cols <= 2*nlanes? Just skipped?