diff --git a/3rdparty/hal_rvv/hal_rvv_1p0/merge.hpp b/3rdparty/hal_rvv/hal_rvv_1p0/merge.hpp index 5278680eaa..97c71ad0f3 100644 --- a/3rdparty/hal_rvv/hal_rvv_1p0/merge.hpp +++ b/3rdparty/hal_rvv/hal_rvv_1p0/merge.hpp @@ -1,3 +1,6 @@ +// 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. #ifndef OPENCV_HAL_RVV_MERGE_HPP_INCLUDED #define OPENCV_HAL_RVV_MERGE_HPP_INCLUDED diff --git a/3rdparty/kleidicv/CMakeLists.txt b/3rdparty/kleidicv/CMakeLists.txt index a7f7c1a37c..060357662c 100644 --- a/3rdparty/kleidicv/CMakeLists.txt +++ b/3rdparty/kleidicv/CMakeLists.txt @@ -20,4 +20,5 @@ else() set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/kleidicv/kleidicv-${KLEIDICV_SRC_COMMIT}") endif() +option(KLEIDICV_ENABLE_SME2 "" OFF) # not compatible with some CLang versions in NDK include("${THE_ROOT}/adapters/opencv/CMakeLists.txt") diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index 7542b069fa..4e148d89b1 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -915,16 +915,6 @@ macro(ocv_create_module) POST_BUILD COMMAND link.exe /edit /APPCONTAINER:NO $(TargetPath)) endif() - - if("${the_module}" STREQUAL "opencv_ts") - # copy required dll files; WinRT apps need these dlls that are usually substituted by Visual Studio - # however they are not on path and need to be placed with executables to run from console w/o APPCONTAINER - add_custom_command(TARGET ${the_module} - POST_BUILD - COMMAND copy /y "\"$(VCInstallDir)redist\\$(PlatformTarget)\\Microsoft.VC$(PlatformToolsetVersion).CRT\\msvcp$(PlatformToolsetVersion).dll\"" "\"${CMAKE_BINARY_DIR}\\bin\\$(Configuration)\\msvcp$(PlatformToolsetVersion)_app.dll\"" - COMMAND copy /y "\"$(VCInstallDir)redist\\$(PlatformTarget)\\Microsoft.VC$(PlatformToolsetVersion).CRT\\msvcr$(PlatformToolsetVersion).dll\"" "\"${CMAKE_BINARY_DIR}\\bin\\$(Configuration)\\msvcr$(PlatformToolsetVersion)_app.dll\"" - COMMAND copy /y "\"$(VCInstallDir)redist\\$(PlatformTarget)\\Microsoft.VC$(PlatformToolsetVersion).CRT\\vccorlib$(PlatformToolsetVersion).dll\"" "\"${CMAKE_BINARY_DIR}\\bin\\$(Configuration)\\vccorlib$(PlatformToolsetVersion)_app.dll\"") - endif() endif() endmacro() diff --git a/cmake/templates/dllmain.cpp.in b/cmake/templates/dllmain.cpp.in index db95f5d00c..f4ee5a9ff0 100644 --- a/cmake/templates/dllmain.cpp.in +++ b/cmake/templates/dllmain.cpp.in @@ -9,6 +9,8 @@ #error "Build configuration error" #endif +#pragma warning(disable:4447) // Disable warning 'main' signature found without threading model + #define WIN32_LEAN_AND_MEAN #include diff --git a/doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.markdown b/doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.markdown index 7a200725de..ba47f49806 100644 --- a/doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.markdown +++ b/doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.markdown @@ -11,7 +11,7 @@ Simple Thresholding ------------------- Here, the matter is straight-forward. For every pixel, the same threshold value is applied. -If the pixel value is smaller than the threshold, it is set to 0, otherwise it is set to a maximum value. +If the pixel value is smaller than or equal to the threshold, it is set to 0, otherwise it is set to a maximum value. The function **cv.threshold** is used to apply the thresholding. The first argument is the source image, which **should be a grayscale image**. The second argument is the threshold value which is used to classify the pixel values. diff --git a/modules/core/src/utils/datafile.cpp b/modules/core/src/utils/datafile.cpp index 3af83a5d8f..67cc2571ac 100644 --- a/modules/core/src/utils/datafile.cpp +++ b/modules/core/src/utils/datafile.cpp @@ -164,9 +164,9 @@ bool getBinLocation(std::string& dst) #ifdef _WIN32 bool getBinLocation(std::wstring& dst) { - void* addr = (void*)getModuleLocation; // using code address, doesn't work with static linkage! HMODULE m = 0; #if _WIN32_WINNT >= 0x0501 && (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) + void* addr = (void*)getModuleLocation; // using code address, doesn't work with static linkage! ::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, reinterpret_cast(addr), &m); diff --git a/modules/dnn/src/ie_ngraph.cpp b/modules/dnn/src/ie_ngraph.cpp index dd48704e2c..c90dc9dceb 100644 --- a/modules/dnn/src/ie_ngraph.cpp +++ b/modules/dnn/src/ie_ngraph.cpp @@ -221,7 +221,9 @@ void InfEngineNgraphNet::createNet(Target targetId) { CV_LOG_DEBUG(NULL, "DNN/NGRAPH: Add 'Result' output: " << output_node_it->first); CV_Assert(output_node_it->second); auto out = std::make_shared(output_node_it->second->node); - out->set_friendly_name(output_node_it->first + (output_node_it->second->node.get_node()->get_output_size() == 1 ? "" : ".0")); + std::string name = output_node_it->first + (output_node_it->second->node.get_node()->get_output_size() == 1 ? "" : ".0"); + CV_LOG_DEBUG(NULL, "DNN-IE: Change friendly name from " << out->get_friendly_name() << " to " << name); + out->set_friendly_name(name); outs.push_back(out); } CV_Assert_N(!inputs_vec.empty(), !outs.empty()); @@ -597,16 +599,22 @@ void InfEngineNgraphNet::forward(const std::vector >& outBlo { const std::string& name = it.get_node()->get_friendly_name(); auto blobIt = allBlobs.find(name); - CV_Assert(blobIt != allBlobs.end()); + if (blobIt == allBlobs.end()) + { + CV_Error(Error::StsAssert, format("Input blob with name %s not found", name.c_str())); + } reqWrapper->req.set_input_tensor(i++, isAsync ? copyBlob(blobIt->second) : blobIt->second); } i = 0; - for (const auto& it : netExec.outputs()) + for (const auto& it : cnn->outputs()) // Starts from OpenVINO 2024 CompiledModel changes output frindly names { const std::string& name = it.get_node()->get_friendly_name(); auto blobIt = allBlobs.find(name); - CV_Assert(blobIt != allBlobs.end()); + if (blobIt == allBlobs.end()) + { + CV_Error(Error::StsAssert, format("Output blob with name %s not found", name.c_str())); + } reqWrapper->req.set_output_tensor(i++, isAsync ? copyBlob(blobIt->second) : blobIt->second); } diff --git a/modules/highgui/src/window_winrt.cpp b/modules/highgui/src/window_winrt.cpp index e02749cff4..10170eb5c2 100644 --- a/modules/highgui/src/window_winrt.cpp +++ b/modules/highgui/src/window_winrt.cpp @@ -34,7 +34,20 @@ #include #include "window_winrt_bridge.hpp" -#define CV_WINRT_NO_GUI_ERROR( funcname ) CV_Error(cv::Error::StsNotImplemented, "The function is not implemented") +#define CV_WINRT_NO_GUI_ERROR( funcname ) \ +{ \ + cvError( cv::Error::StsNotImplemented, funcname, \ + "The function is not implemented. ", \ + __FILE__, __LINE__ ); \ +} + +#ifdef CV_ERROR +#undef CV_ERROR +#define CV_ERROR( Code, Msg ) \ +{ \ + cvError( (Code), cvFuncName, Msg, __FILE__, __LINE__ ); \ +}; +#endif /********************************** WinRT Specific API Implementation ******************************************/ @@ -70,6 +83,8 @@ void showImageImpl(const char* name, InputArray arr) int namedWindowImpl(const char* name, int flags) { + CV_UNUSED(flags); + if (!name) CV_Error(cv::Error::StsNullPtr, "NULL name"); @@ -94,8 +109,6 @@ void destroyAllWindowsImpl() int createTrackbar2Impl(const char* trackbar_name, const char* window_name, int* val, int count, CvTrackbarCallback2 on_notify, void* userdata) { - int pos = 0; - if (!window_name || !trackbar_name) CV_Error(cv::Error::StsNullPtr, "NULL window or trackbar name"); @@ -167,7 +180,7 @@ int getTrackbarPosImpl(const char* trackbar_name, const char* window_name) CvTrackbar* trackbar = HighguiBridge::getInstance().findTrackbarByName(trackbar_name, window_name); if (trackbar) - pos = trackbar->getPosition(); + pos = (int)trackbar->getPosition(); return pos; } @@ -179,11 +192,11 @@ int waitKeyImpl(int delay) CV_WINRT_NO_GUI_ERROR("waitKeyImpl"); // see https://msdn.microsoft.com/en-us/library/windows/desktop/ms724411(v=vs.85).aspx - int time0 = GetTickCount64(); + //int time0 = GetTickCount64(); for (;;) { - CvWindow* window; + // CvWindow* window; if (delay <= 0) { @@ -194,6 +207,7 @@ int waitKeyImpl(int delay) void setMouseCallbackImpl(const char* window_name, CvMouseCallback on_mouse, void* param) { + CV_UNUSED(on_mouse); CV_UNUSED(param); CV_WINRT_NO_GUI_ERROR("setMouseCallbackImpl"); if (!window_name) @@ -210,19 +224,23 @@ void setMouseCallbackImpl(const char* window_name, CvMouseCallback on_mouse, voi void moveWindowImpl(const char* name, int x, int y) { + CV_UNUSED(name); CV_UNUSED(x); CV_UNUSED(y); CV_WINRT_NO_GUI_ERROR("moveWindowImpl"); } void resizeWindowImpl(const char* name, int width, int height) { + CV_UNUSED(name); CV_UNUSED(width); CV_UNUSED(height); CV_WINRT_NO_GUI_ERROR("resizeWindowImpl"); } void cvSetModeWindow_WinRT(const char* name, double prop_value) { + CV_UNUSED(name); CV_UNUSED(prop_value); CV_WINRT_NO_GUI_ERROR("cvSetModeWindow"); } double cvGetModeWindow_WinRT(const char* name) { + CV_UNUSED(name); CV_WINRT_NO_GUI_ERROR("cvGetModeWindow"); return cv::Error::StsNotImplemented; } diff --git a/modules/highgui/src/window_winrt_bridge.cpp b/modules/highgui/src/window_winrt_bridge.cpp index 64a6731d55..bd3f789a29 100644 --- a/modules/highgui/src/window_winrt_bridge.cpp +++ b/modules/highgui/src/window_winrt_bridge.cpp @@ -64,9 +64,9 @@ HighguiBridge& HighguiBridge::getInstance() return instance; } -void HighguiBridge::setContainer(Windows::UI::Xaml::Controls::Panel^ container) +void HighguiBridge::setContainer(Windows::UI::Xaml::Controls::Panel^ container_) { - this->container = container; + this->container = container_; } CvWindow* HighguiBridge::findWindowByName(cv::String name) @@ -190,9 +190,9 @@ void CvTrackbar::setMinPosition(double pos) slider->Minimum = pos; } -void CvTrackbar::setSlider(Slider^ slider) { - if (slider) - this->slider = slider; +void CvTrackbar::setSlider(Slider^ slider_) { + if (slider_) + this->slider = slider_; } double CvTrackbar::getPosition() @@ -219,6 +219,7 @@ Slider^ CvTrackbar::getSlider() CvWindow::CvWindow(cv::String name, int flags) : name(name) { + CV_UNUSED(flags); this->page = (Page^)Windows::UI::Xaml::Markup::XamlReader::Load(const_cast(markupContent)); this->sliderMap = new std::map(); @@ -246,14 +247,15 @@ CvWindow::CvWindow(cv::String name, int flags) : name(name) CvWindow::~CvWindow() {} -void CvWindow::createSlider(cv::String name, int* val, int count, CvTrackbarCallback2 on_notify, void* userdata) +void CvWindow::createSlider(cv::String name_, int* val, int count, CvTrackbarCallback2 on_notify, void* userdata) { - CvTrackbar* trackbar = findTrackbarByName(name); + CV_UNUSED(userdata); + CvTrackbar* trackbar = findTrackbarByName(name_); // Creating slider if name is new or reusing the existing one Slider^ slider = !trackbar ? ref new Slider() : trackbar->getSlider(); - slider->Header = HighguiBridge::getInstance().convertString(name); + slider->Header = HighguiBridge::getInstance().convertString(name_); // Making slider the same size as the image control or setting minimal size. // This is added to cover potential edge cases because: @@ -282,26 +284,26 @@ void CvWindow::createSlider(cv::String name, int* val, int count, CvTrackbarCall if (!sliderPanel) return; // Adding slider to the list for current window - CvTrackbar* trackbar = new CvTrackbar(name, slider, this); - trackbar->callback = on_notify; + CvTrackbar* trackbar_ = new CvTrackbar(name_, slider, this); + trackbar_->callback = on_notify; slider->ValueChanged += ref new Controls::Primitives::RangeBaseValueChangedEventHandler( [=](Platform::Object^ sender, Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs^ e) { Slider^ slider = (Slider^)sender; - trackbar->callback(slider->Value, nullptr); + trackbar_->callback((int)slider->Value, nullptr); }); - this->sliderMap->insert(std::pair(name, trackbar)); + this->sliderMap->insert(std::pair(name_, trackbar_)); // Adding slider to the window sliderPanel->Children->Append(slider); } } -CvTrackbar* CvWindow::findTrackbarByName(cv::String name) +CvTrackbar* CvWindow::findTrackbarByName(cv::String name_) { - auto search = sliderMap->find(name); + auto search = sliderMap->find(name_); if (search != sliderMap->end()) { return search->second; } @@ -343,12 +345,12 @@ Page^ CvWindow::getPage() } //TODO: prototype, not in use yet -void CvWindow::createButton(cv::String name) +void CvWindow::createButton(cv::String name_) { if (!buttonPanel) return; Button^ b = ref new Button(); - b->Content = HighguiBridge::getInstance().convertString(name); + b->Content = HighguiBridge::getInstance().convertString(name_); b->Width = 260; b->Height = 80; b->Click += ref new Windows::UI::Xaml::RoutedEventHandler( diff --git a/modules/highgui/src/window_winrt_bridge.hpp b/modules/highgui/src/window_winrt_bridge.hpp index ec11945feb..dbe939101d 100644 --- a/modules/highgui/src/window_winrt_bridge.hpp +++ b/modules/highgui/src/window_winrt_bridge.hpp @@ -113,7 +113,6 @@ private: // Meyers singleton HighguiBridge(const HighguiBridge &); - void operator=(HighguiBridge &); HighguiBridge() { windowsMap = new std::map(); }; diff --git a/modules/imgproc/src/imgwarp.cpp b/modules/imgproc/src/imgwarp.cpp index 8da46d26da..20d35d1180 100644 --- a/modules/imgproc/src/imgwarp.cpp +++ b/modules/imgproc/src/imgwarp.cpp @@ -2666,39 +2666,30 @@ void warpAffineBlocklineNN(int *adelta, int *bdelta, short* xy, int X0, int Y0, { CALL_HAL(warpAffineBlocklineNN, cv_hal_warpAffineBlocklineNN, adelta, bdelta, xy, X0, Y0, bw); - const int AB_BITS = MAX(10, (int)INTER_BITS); + constexpr int AB_BITS = MAX(10, static_cast(INTER_BITS)); int x1 = 0; - #if CV_TRY_SSE4_1 - bool useSSE4_1 = CV_CPU_HAS_SUPPORT_SSE4_1; - if( useSSE4_1 ) - opt_SSE4_1::WarpAffineInvoker_Blockline_SSE41(adelta, bdelta, xy, X0, Y0, bw); - else - #endif +#if (CV_SIMD || CV_SIMD_SCALABLE) { - #if CV_SIMD128 + const v_int32 v_X0 = vx_setall_s32(X0); + const v_int32 v_Y0 = vx_setall_s32(Y0); + const int step = VTraits::vlanes(); + for (; x1 <= bw - step; x1 += step) { - v_int32x4 v_X0 = v_setall_s32(X0), v_Y0 = v_setall_s32(Y0); - int span = VTraits::vlanes(); - for( ; x1 <= bw - span; x1 += span ) - { - v_int16x8 v_dst[2]; - #define CV_CONVERT_MAP(ptr,offset,shift) v_pack(v_shr(v_add(shift,v_load(ptr + offset))),\ - v_shr(v_add(shift,v_load(ptr + offset + 4)))) - v_dst[0] = CV_CONVERT_MAP(adelta, x1, v_X0); - v_dst[1] = CV_CONVERT_MAP(bdelta, x1, v_Y0); - #undef CV_CONVERT_MAP - v_store_interleave(xy + (x1 << 1), v_dst[0], v_dst[1]); - } - } - #endif - for( ; x1 < bw; x1++ ) - { - int X = (X0 + adelta[x1]) >> AB_BITS; - int Y = (Y0 + bdelta[x1]) >> AB_BITS; - xy[x1*2] = saturate_cast(X); - xy[x1*2+1] = saturate_cast(Y); + v_int16 v_X = v_pack(v_shr(v_add(v_X0, vx_load(adelta + x1))), + v_shr(v_add(v_X0, vx_load(adelta + x1 + step / 2)))); + v_int16 v_Y = v_pack(v_shr(v_add(v_Y0, vx_load(bdelta + x1))), + v_shr(v_add(v_Y0, vx_load(bdelta + x1 + step / 2)))); + v_store_interleave(xy + 2 * x1, v_X, v_Y); } } +#endif + for (; x1 < bw; x1++) + { + const int X = (X0 + adelta[x1]) >> AB_BITS; + const int Y = (Y0 + bdelta[x1]) >> AB_BITS; + xy[x1 * 2] = saturate_cast(X); + xy[x1 * 2 + 1] = saturate_cast(Y); + } } void warpAffineBlockline(int *adelta, int *bdelta, short* xy, short* alpha, int X0, int Y0, int bw) diff --git a/modules/imgproc/src/imgwarp.hpp b/modules/imgproc/src/imgwarp.hpp index 35e9f7bb02..c5b02c5a58 100644 --- a/modules/imgproc/src/imgwarp.hpp +++ b/modules/imgproc/src/imgwarp.hpp @@ -74,7 +74,6 @@ namespace opt_SSE4_1 void convertMaps_nninterpolate32f1c16s_SSE41(const float* src1f, const float* src2f, short* dst1, int width); void convertMaps_32f1c16s_SSE41(const float* src1f, const float* src2f, short* dst1, ushort* dst2, int width); void convertMaps_32f2c16s_SSE41(const float* src1f, short* dst1, ushort* dst2, int width); -void WarpAffineInvoker_Blockline_SSE41(int *adelta, int *bdelta, short* xy, int X0, int Y0, int bw); class WarpPerspectiveLine_SSE4 { diff --git a/modules/imgproc/src/imgwarp.sse4_1.cpp b/modules/imgproc/src/imgwarp.sse4_1.cpp index a2ec9396da..26ece533bc 100644 --- a/modules/imgproc/src/imgwarp.sse4_1.cpp +++ b/modules/imgproc/src/imgwarp.sse4_1.cpp @@ -173,42 +173,6 @@ void convertMaps_32f2c16s_SSE41(const float* src1f, short* dst1, ushort* dst2, i } } -void WarpAffineInvoker_Blockline_SSE41(int *adelta, int *bdelta, short* xy, int X0, int Y0, int bw) -{ - const int AB_BITS = MAX(10, (int)INTER_BITS); - int x1 = 0; - - __m128i v_X0 = _mm_set1_epi32(X0); - __m128i v_Y0 = _mm_set1_epi32(Y0); - for (; x1 <= bw - 16; x1 += 16) - { - __m128i v_x0 = _mm_packs_epi32(_mm_srai_epi32(_mm_add_epi32(v_X0, _mm_loadu_si128((__m128i const *)(adelta + x1))), AB_BITS), - _mm_srai_epi32(_mm_add_epi32(v_X0, _mm_loadu_si128((__m128i const *)(adelta + x1 + 4))), AB_BITS)); - __m128i v_x1 = _mm_packs_epi32(_mm_srai_epi32(_mm_add_epi32(v_X0, _mm_loadu_si128((__m128i const *)(adelta + x1 + 8))), AB_BITS), - _mm_srai_epi32(_mm_add_epi32(v_X0, _mm_loadu_si128((__m128i const *)(adelta + x1 + 12))), AB_BITS)); - - __m128i v_y0 = _mm_packs_epi32(_mm_srai_epi32(_mm_add_epi32(v_Y0, _mm_loadu_si128((__m128i const *)(bdelta + x1))), AB_BITS), - _mm_srai_epi32(_mm_add_epi32(v_Y0, _mm_loadu_si128((__m128i const *)(bdelta + x1 + 4))), AB_BITS)); - __m128i v_y1 = _mm_packs_epi32(_mm_srai_epi32(_mm_add_epi32(v_Y0, _mm_loadu_si128((__m128i const *)(bdelta + x1 + 8))), AB_BITS), - _mm_srai_epi32(_mm_add_epi32(v_Y0, _mm_loadu_si128((__m128i const *)(bdelta + x1 + 12))), AB_BITS)); - - _mm_interleave_epi16(v_x0, v_x1, v_y0, v_y1); - - _mm_storeu_si128((__m128i *)(xy + x1 * 2), v_x0); - _mm_storeu_si128((__m128i *)(xy + x1 * 2 + 8), v_x1); - _mm_storeu_si128((__m128i *)(xy + x1 * 2 + 16), v_y0); - _mm_storeu_si128((__m128i *)(xy + x1 * 2 + 24), v_y1); - } - for (; x1 < bw; x1++) - { - int X = (X0 + adelta[x1]) >> AB_BITS; - int Y = (Y0 + bdelta[x1]) >> AB_BITS; - xy[x1 * 2] = saturate_cast(X); - xy[x1 * 2 + 1] = saturate_cast(Y); - } -} - - class WarpPerspectiveLine_SSE4_Impl CV_FINAL : public WarpPerspectiveLine_SSE4 { public: diff --git a/modules/imgproc/test/test_drawing.cpp b/modules/imgproc/test/test_drawing.cpp index b0b1b47080..8189a5e14d 100755 --- a/modules/imgproc/test/test_drawing.cpp +++ b/modules/imgproc/test/test_drawing.cpp @@ -265,7 +265,7 @@ int CV_DrawingTest_CPP::checkLineVirtualIterator( ) int x3 = randomGenerator.uniform(-512, 1024+1); int y3 = randomGenerator.uniform(-512, 1024+1); int channels = randomGenerator.uniform(1, 3+1); - Mat m(cv::Size(width, height), CV_MAKETYPE(8U, channels)); + Mat m(cv::Size(width, height), CV_MAKETYPE(CV_8U, channels)); Point p1(x1, y1); Point p2(x2, y2); Point offset(x3, y3); diff --git a/modules/objdetect/src/face_detect.cpp b/modules/objdetect/src/face_detect.cpp index 441c55e788..5aa5357f97 100644 --- a/modules/objdetect/src/face_detect.cpp +++ b/modules/objdetect/src/face_detect.cpp @@ -309,7 +309,7 @@ Ptr FaceDetectorYN::create(const String& framework, #ifdef HAVE_OPENCV_DNN return makePtr(framework, bufferModel, bufferConfig, input_size, score_threshold, nms_threshold, top_k, backend_id, target_id); #else - CV_UNUSED(bufferModel); CV_UNUSED(bufferConfig); CV_UNUSED(input_size); CV_UNUSED(score_threshold); CV_UNUSED(nms_threshold); CV_UNUSED(top_k); CV_UNUSED(backend_id); CV_UNUSED(target_id); + CV_UNUSED(framework); CV_UNUSED(bufferModel); CV_UNUSED(bufferConfig); CV_UNUSED(input_size); CV_UNUSED(score_threshold); CV_UNUSED(nms_threshold); CV_UNUSED(top_k); CV_UNUSED(backend_id); CV_UNUSED(target_id); CV_Error(cv::Error::StsNotImplemented, "cv::FaceDetectorYN requires enabled 'dnn' module."); #endif } diff --git a/modules/objdetect/src/face_recognize.cpp b/modules/objdetect/src/face_recognize.cpp index a5f4641da3..b024c787eb 100644 --- a/modules/objdetect/src/face_recognize.cpp +++ b/modules/objdetect/src/face_recognize.cpp @@ -210,7 +210,7 @@ Ptr FaceRecognizerSF::create(const String& framework, #ifdef HAVE_OPENCV_DNN return makePtr(framework, bufferModel, bufferConfig, backend_id, target_id); #else - CV_UNUSED(bufferModel); CV_UNUSED(bufferConfig); CV_UNUSED(backend_id); CV_UNUSED(target_id); + CV_UNUSED(framework); CV_UNUSED(bufferModel); CV_UNUSED(bufferConfig); CV_UNUSED(backend_id); CV_UNUSED(target_id); CV_Error(cv::Error::StsNotImplemented, "cv::FaceRecognizerSF requires enabled 'dnn' module"); #endif } diff --git a/modules/videoio/src/cap_winrt/MediaStreamSink.cpp b/modules/videoio/src/cap_winrt/MediaStreamSink.cpp index 264f31551c..184c3909db 100644 --- a/modules/videoio/src/cap_winrt/MediaStreamSink.cpp +++ b/modules/videoio/src/cap_winrt/MediaStreamSink.cpp @@ -35,7 +35,7 @@ MediaStreamSink::MediaStreamSink( __in MediaSampleHandler^ sampleHandler ) : _shutdown(false) - , _id(-1) + , _id((DWORD)-1) , _width(0) , _height(0) { @@ -207,16 +207,16 @@ HRESULT MediaStreamSink::QueueEvent( __in MediaEventType met, __in REFGUID extendedType, __in HRESULT status, - __in_opt const PROPVARIANT *value + __in_opt const PROPVARIANT *value_ ) { - return ExceptionBoundary([this, met, extendedType, status, value]() + return ExceptionBoundary([this, met, extendedType, status, value_]() { auto lock = _lock.LockExclusive(); _VerifyNotShutdown(); - CHK(_eventQueue->QueueEventParamVar(met, extendedType, status, value)); + CHK(_eventQueue->QueueEventParamVar(met, extendedType, status, value_)); }); } @@ -381,4 +381,4 @@ void MediaStreamSink::_UpdateMediaType(__in const ComPtr& mt) } CHK(mt->CopyAllItems(_curMT.Get())); -} \ No newline at end of file +} diff --git a/modules/videoio/src/cap_winrt_bridge.cpp b/modules/videoio/src/cap_winrt_bridge.cpp index a4980e9a7b..0db4b038af 100644 --- a/modules/videoio/src/cap_winrt_bridge.cpp +++ b/modules/videoio/src/cap_winrt_bridge.cpp @@ -81,11 +81,11 @@ void VideoioBridge::allocateOutputBuffers() } // performed on UI thread -void VideoioBridge::allocateBuffers(int width, int height) +void VideoioBridge::allocateBuffers(int width_, int height_) { // allocate input Mats (bgra8 = CV_8UC4, RGB24 = CV_8UC3) - frontInputMat.create(height, width, CV_8UC3); - backInputMat.create(height, width, CV_8UC3); + frontInputMat.create(height_, width_, CV_8UC3); + backInputMat.create(height_, width_, CV_8UC3); frontInputPtr = frontInputMat.ptr(0); backInputPtr = backInputMat.ptr(0); @@ -155,4 +155,4 @@ void VideoioBridge::setHeight(int _height) height = _height; } -// end \ No newline at end of file +// end diff --git a/modules/videoio/src/cap_winrt_capture.cpp b/modules/videoio/src/cap_winrt_capture.cpp index 7a38617e6a..d7f2aa5bc0 100644 --- a/modules/videoio/src/cap_winrt_capture.cpp +++ b/modules/videoio/src/cap_winrt_capture.cpp @@ -154,6 +154,7 @@ namespace cv { // see VideoCapture::read bool VideoCapture_WinRT::retrieveFrame(int channel, cv::OutputArray outArray) { + CV_UNUSED(channel); if (!started) { int width, height; diff --git a/modules/videoio/src/cap_winrt_video.cpp b/modules/videoio/src/cap_winrt_video.cpp index 174f680d88..c29a34b38e 100644 --- a/modules/videoio/src/cap_winrt_video.cpp +++ b/modules/videoio/src/cap_winrt_video.cpp @@ -238,9 +238,9 @@ void Video::CopyOutput() { auto inAr = VideoioBridge::getInstance().frontInputPtr; auto outAr = GetData(VideoioBridge::getInstance().frontOutputBuffer->PixelBuffer); - const unsigned int bytesPerPixel = 3; + const unsigned int bytesPerPixel_ = 3; auto pbScanline = inAr; - auto plPitch = width * bytesPerPixel; + auto plPitch = width * bytesPerPixel_; auto buf = outAr; unsigned int colBytes = width * 4; @@ -254,7 +254,7 @@ void Video::CopyOutput() { // used for RGB24: // nb. alpha is set to full opaque - for (unsigned int i = 0, j = 0; i < plPitch; i += bytesPerPixel, j += 4) + for (unsigned int i = 0, j = 0; i < plPitch; i += bytesPerPixel_, j += 4) { // swizzle the R and B values (RGB24 to Bgr8) buf[j] = pbScanline[i + 2]; @@ -317,4 +317,4 @@ bool Video::listDevices() { return result.get(); } -// end \ No newline at end of file +// end diff --git a/platforms/js/build_js.py b/platforms/js/build_js.py index 7af9f97230..8248160019 100755 --- a/platforms/js/build_js.py +++ b/platforms/js/build_js.py @@ -252,12 +252,12 @@ if __name__ == "__main__": parser.add_argument('--cmake_option', action='append', help="Append CMake options") # Use flag --build_flags="-s USE_PTHREADS=0 -Os" for one and more arguments as in the example parser.add_argument('--build_flags', help="Append Emscripten build options") - parser.add_argument('--build_wasm_intrin_test', default=False, action="store_true", help="Build WASM intrin tests") + parser.add_argument('--build_wasm_intrin_test', action="store_true", help="Build WASM intrin tests") # Write a path to modify file like argument of this flag parser.add_argument('--config', help="Specify configuration file with own list of exported into JS functions") parser.add_argument('--webnn', action="store_true", help="Enable WebNN Backend") - transformed_args = ["--cmake_option=%s".format(arg) if arg[:2] == "-D" else arg for arg in sys.argv[1:]] + transformed_args = ["--cmake_option={}".format(arg) if arg[:2] == "-D" else arg for arg in sys.argv[1:]] args = parser.parse_args(transformed_args) log.debug("Args: %s", args)