我正在尝试安装一些与我的工作相关的重要软件(在 Windows 10 上),但是当我尝试运行它时会弹出一个错误,提示缺少 opencv_core245.dll 和 opencv_ml245.dll。
我尝试过用谷歌搜索,但得到的结果只有可疑的网站和一些病毒。
我该如何修复此问题?
编辑:我尝试运行的软件是 TITARL 应用程序 这里
答案1
弹出一个错误提示
opencv_core245.dll
,提示opencv_ml245.dll
缺少什么。
这些与OpenCV(开源计算机视觉)库。您可能希望先尝试安装它。
安装说明
Windows 版 OpenCV 提取器(当前打包为
.exe
)运行时会提示提取路径。系统opencv
会自动在该位置创建一个文件夹。从广义上讲,您选择将这些文件提取到哪里并不重要。但是,您的程序可能对丢失的 .dll 的位置有特定要求(您需要验证)。
有些程序可能需要在其设置中定义库的路径,而其他程序可能需要您手动放置文件,例如在其程序文件夹(或其他位置)中。您需要通过程序文档或进一步研究来确认哪些选项适用。
OpenCV 带有许多
builds
。您应该将所选库 .dll 的“位数”与程序的“位数”(即 32 位或 64 位)进行匹配。
泰塔尔
对于 TITARL,缺少的 .dll 需要放在与以下文件相同的文件夹中TITARL.exe
:
opencv_core245.dll
和opencv_ml245.dll
不幸的是,OpenCV 2.4.5(和这些 .dll)似乎不再以预编译二进制文件的形式提供。不过,OpenCV 2.4.5 库仍然可以作为源代码来自官方 GitHub 存储库。需要从此源代码编译缺失的 .dll,程序才能运行。
如果你信任互联网上的陌生人,我有编译这两个 .dll 的 64 位版本为您服务。它们似乎可以example_learning.bat
与 TITARL 提供的正确配合使用。但是,它们尚未经过任何彻底的测试。
注意事项
这些 .dll 是在 Windows 7 上使用 Visual Studio 14 (2015) 构建的,不支持 Python。
构建选项中包含对 FFmpeg 和 DirectShow 的支持,但尚未以任何方式直接测试。
opencv_core245.dll
除和之外,没有构建其他 .dllopencv_ml245.dll
。
如果您决定尝试这些并遇到麻烦(例如无法解释的行为或其他问题),您可能只需要自己编译它们。我在下面概述了我采取的步骤。
Visual Studio 的微型编译指南
根据本通用指南使用 Visual Studio 编译 OpenCV 3,您在评论中提到过,通过构建必要的缺失 .dll,以下步骤应该允许您至少获得 TITARL 的最低限度功能的安装。
准备
下载并安装Microsoft Visual Studio 社区版(免费)。他们有旧版本以及,具体取决于您的需求。请注意,旧版本目前需要免费开发要点帐户访问。
下载并安装CMake. CMake 是一个可使编译变得更容易的实用程序,并且 OpenCV 2.4.5 具有使用它所需的文件。
下载并解压前面链接的源代码(如果你还没有这样做的话)。源代码解压到哪里由你自己决定。
假设已安装 CMake,打开 GUI 界面(例如从桌面上的图标)。
在主窗口顶部的第一个字段中输入源代码的路径。在下面的第二个字段中,添加要存储与编译相关的文件的路径(第二个路径的位置由您选择)。在这些步骤中,我将使用一个名为的文件夹
build
,该文件夹与源代码位于同一目录中:输入这些路径后,按配置主窗口底部附近。应出现一个新对话框。
在此对话框中,为您的 .dll 选择正确的“生成器”。对于 Visual Studio,这将是版本名称,后面跟着任何内容(构建 32 位二进制文件)或
Win64
(构建 64 位二进制文件)。TITARL 是一个 64 位程序(TITARL 1.7 [Win x64 - Public release]
),因此您需要选择例如Visual Studio 14 2015 Win64
或Visual Studio 15 2017 Win64
来构建适当的 64 位 .dll:按结束关闭对话框。CMake 将自动开始处理 OpenCV 2.4.5 源代码。在主窗口中,配置按钮将变为停止按钮和正在生成...和打开项目...(Open Project...)旁边的按钮将变灰。请注意,此初始处理可能需要几分钟。
一旦完成此处理,主 CMake 窗口的上部窗格将显示大量红色信息(这些是新检测到的选项)。下部窗格应显示“配置完成”:
找到标记的构建选项
BUILD_opencv_*
(其中*
是名称,例如apps
)。它们应该都在一个块中。取消选中每个项目旁边的复选框,不包括BUILD_opencv_core
和BUILD_opencv_ml
。按配置再次处理完成后,按产生...完成后,主 CMake 窗口应如下所示:
修复 OpenCV 2.4.5
通常,此时一切都已准备就绪,可以编译缺少的 .dll。但是,OpenCV 2.4.5 在 Visual Studio 12+ 中存在一个普遍问题,即会产生大量"max" : is not a member of "std"
错误,从而阻止创建必要的 .dll。
值得庆幸的是,正如对此的回答中详细说明的那样StackOverflow 问题,只需对原始源代码进行一些微小的修改即可实现编译。
要修复此问题:
找到
OpenCV.sln
之前由 CMake 生成的解决方案(例如 在 下C:\path\to\opencv-2.4.5\build
)。双击该文件以在 Visual Studio 中打开它。由于这可能是您第一次打开此解决方案,Visual Studio 可能需要一两分钟才能完全解析它。观察主 Visual Studio 窗口底部的蓝色活动栏,等到它显示“就绪”后再继续。
一旦 Visual Studio 稳定下来,按Ctrl+H打开查找和替换对话框,然后执行以下操作:
编译
完成上述所有步骤后,您就可以使用 CMake 进行编译了。在您的build
目录中打开命令窗口(例如C:\path\to\opencv-2.4.5\build
)并输入:
C:\path\to\cmake.exe --build . --config Release --target INSTALL
经过短暂的时间(不到 15 分钟),编译应该完成,缺失的 .dll 应该可以在目录(例如)install\bin
的文件夹下找到。如前所述,此文件夹中的 .dll 需要与 放在同一个文件夹中。build
C:\path\to\opencv-2.4.5\build\install\bin
TITARL.exe
一般注意事项
按照上述步骤,除了使用 Visual Studio 进行必要的代码更正外,我没有遇到任何重大错误。不过,我并没有尝试构建整个库。
这里介绍的步骤并非与指南链接中给出的步骤完全一致。您可能希望参考这些链接以了解更多详细信息。
Visual Studio 注释
Visual Studio 可能是一个大型安装,并且可能需要单独配置。因此,准备步骤 1 可能比您想象的花费更长的时间。
如果您打算修改 OpenCV 中的 Python 支持,则可能需要设置 Visual Studio 及其
Python Tools for Visual Studio
对 的支持Visual C++
。编译期间的黄色警告消息通常可以安全地忽略。另一方面,红色错误消息表示会导致构建失败的问题(即不会生成 .dll)。但是,这些与下面 CMake 生成的潜在“安全”红色错误不同。
CMake 说明
CMake在其 GUI 界面中
/
不使用\
Windows 路径。也就是说,粘贴的路径应该会自动\
切换/
。如果您不想
cmake.exe
在最后的编译步骤中输入完整路径,请选择在安装期间将 CMake 添加到您的 PATH 中的选项。在 CMake 中构建支持 Python 的 .dll 的选项需要这里未列出的步骤。
如果您选择了错误的生成器,准备步骤 7 可能会导致构建错误的二进制文件(即 32 位 .dll 无法与 64 位程序配合使用)。
Use default native compilers
不过,保留单选按钮选项应该没问题。如果您在使用 CMake 等时犯了任何错误,只需删除您的
build
文件夹并从准备步骤 4 重新开始。在 CMake 中,按照给出的步骤,界面中的红色“错误”似乎不会引起任何严重问题。话虽如此,通常还是有必要记录您遇到的任何错误或警告。
如果存在任何严重问题,配置将无法完成并且会写入错误日志。