OpenCV cv::plugin::impl::DynamicLib::libraryLoad load ..opencv_core_parallel_tbb45 =>FAILED

Opencv调试版报错,

[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\parallel\registry_parallel.impl.hpp (96) cv::parallel::ParallelBackendRegistry::ParallelBackendRegistry core(parallel): Enabled backends(3, sorted by priority): ONETBB(1000); TBB(990); OPENMP(980)
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_core_parallel_onetbb455_64d.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_onetbb455_64d.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_core_parallel_tbb455_64d.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_tbb455_64d.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_core_parallel_openmp455_64d.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_openmp455_64d.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\highgui\src\registry.impl.hpp (114) cv::highgui_backend::UIBackendRegistry::UIBackendRegistry UI: Enabled backends(4, sorted by priority): GTK(1000); GTK3(990); GTK2(980); WIN32(970) + BUILTIN(WIN32UI)
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_highgui_gtk455_64.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_highgui_gtk455_64.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_highgui_gtk3455_64.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_highgui_gtk3455_64.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_highgui_gtk2455_64.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_highgui_gtk2455_64.dll => FAILED
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\highgui\src\backend.cpp (90) cv::highgui_backend::createUIBackend UI: using backend: WIN32 (priority=970)
[ INFO:[email protected]] global D:\OpenCV455\opencv-4.5.5\modules\highgui\src\window_w32.cpp (3013) cv::impl::Win32BackendUI::createWindow OpenCV/UI: Creating Win32UI window: Press ESC or Q to exit (1)

我仔细看了一下,我在编译Opencv455时确实没有加入TBB,OPENMP,和gtk这样的库。但是为什么会报错呢?

我搜索到了一个答案,

DLLs for parallel execution - build - OpenCV

这里我就不翻译了,把有用的部分录在下面,

mshabunin

Don’t worry, your OpenCV probably has built-in parallel backend too, you can check it in the cmake configuration output or by printing output of getBuildInformation() function.
Dynamic backends are optional.

These messages are visible because you are using debug build which has logging level set to INFO or DEBUG, you can omit these messages by setting environment variable OPENCV_LOG_LEVEL=e or 2 (OpenCV: cv::utils::logging Namespace Reference 65).

There is some info with build instructions and environment variables in the documentation 11 and the original PR 3. Though documentation mostly cover user-provided backends usage, these are different from dynamic backends (yeah, it gets complicated ).

In most cases you’ll want to have built-in parallel backend only, dynamic parallel backends are meant to be used if you want to create a single binary distribution of OpenCV with ability to choose backend dynamically on per-application basis (e.g. enable TBB backend in application which uses TBB too and use MS Concurrency for others). Also it helps to make some 3rdparty dependencies optional, so that you will have ability to use this distribution with minimal dependencies and add functionality or improve performance just by installing extra package.

Please note that built-in backend works as before, it can be TBB or OpenMP, just as in older versions. Furthermore there is a cmake option PARALLEL_ENABLE_PLUGINS which can be turned OFF to disable dynamic backends completely.

Idea is to first check for external implementations in plugins and only then fallback to built-in backend, so the order can not be changed. I understand this can be too verbose and perhaps logging level for these messages could be changed, but on the other hand this is an essence of debug build - provide as much information as possible for troubleshooting (for ex. try to launch basic GStreamer pipeline with GST_DEBUG=5 and you’ll see The Verbose log ).

结论:这些不用处理,不影响结果。

本文结束 

你可能感兴趣的:(OpenCV)