6

我正在使用安装了最少软件包的 docker 容器。我opencv-contrib-python使用安装pip3 install opencv-contrib-python并安装了最新版本4.1.025,并已验证它正在运行并且我的程序可以正常运行。但是,现在我需要该freetype模块,但是当我尝试时:

import cv2 as cv
ft = cv.freetype.createFreeType2()

它抛出AttributeError了标题中的内容。我尝试重新安装不同的版本,即:4.0.0.21, 4.0.1.23, 4.0.1.24, 4.1.0.25无济于事。我主要使用无头版本(因为我使用的是 docker 并且不需要任何 gui 功能)。我发现的另一件事不是我尝试过的所有模块都可以导入(ccalib、tracking、sfm、xobjdetect 等),并且这些模块抛出了相同的错误。这是否意味着某些模块无法通过pip3安装获得?谢谢你。

4

1 回答 1

1

我在这个问题上已经很晚了,但我希望这对某人有所帮助。

我在底部添加了指向易于遵循的指南的链接。

以下是您需要遵循的基本步骤:

  • 安装 CMake 和 Git(如果你还没有)
  • 在 git vcpkg 文件夹中(git clone https://github.com/Microsoft/vcpkg.git
  • 使用 vcpkg 命令行安装 freetype 和 harfbuzz
    • bootstrap-vcpkg.bat
    • vcpkg install freetype:x64-windows
    • vcpkg install harfbuzz:x64-windows
  • 找到 vcpkg.cmake 文件并记下它的路径
  • 确保在 Visual Studio 19 中安装了 C++ 构建工具
  • 下载并解压 OpenCV 和 OpenCV 贡献
  • 在提取的 OpenCV 中创建一个名为“build”的空目录
  • 修改 opencv-contrib 中 freetype 模块文件夹中的 CMakeLists.txt(链接
  • 修改并运行以下命令:
    • cmake -G "Visual Studio 16 2019" -B D:\code\downloads\opencv-4.3.0\build -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_PYTHON_SUPPORT=ON -D BUILD_opencv_python3=yes -D PYTHON_DEFAULT_EXECUTABLE=D:\anaconda3\python.exe -D OPENCV_SKIP_PYTHON_LOADER=ON -D PYTHON_LIBRARY=D:\anaconda3\libs\python36.lib -D OPENCV_EXTRA_MODULES_PATH=D:\code\downloads\opencv_contrib-4.3.0\modules -D OPEN_CV_FORCE_PYTHON_LIBS=yes -D CMAKE_TOOLCHAIN_FILE=D:\code\downloads\vcpkg\scripts\buildsystems\vcpkg.cmake
  • 使用 CMake GUI 进行此链接 ( LINK )中引用的更改
  • 进行必要的更改后,单击配置和生成。
  • 使用 Visual Studio 19 构建 DEBUG & RELEASE 版本
  • 通过从您设置的环境中导入 cv2.freetype 来测试安装。

这里有一个全面的书面指南:

另外,我制作了一个受相同教程启发的视频,可以在这里找到:

我建议您观看视频并将本指南放在一边打开。

干杯!

于 2020-04-24T06:15:57.923 回答