AttributeError: module 'cv2.cv2' has no attribute 'freetype' in OpenCV

AttributeError: module 'cv2.cv2' has no attribute 'freetype' in OpenCV

我正在使用安装了最少软件包的 docker 容器。我使用 pip3 install opencv-contrib-python 安装了 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 安装获得?谢谢。

这个问题我来晚了,但我希望这对某人有所帮助。

我已将 link 添加到底部的易于遵循的指南中。

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

  • 安装 CMake & Git(如果你还没有)
  • 在文件夹 git vcpkg(git 克隆 https://github.com/Microsoft/vcpkg.git
  • 使用 vcpkg 命令行安装 freetype 和 harfbuzz
    • bootstrap-vcpkg.bat
    • vcpkg install freetype:x64-windows
    • vcpkg install harfbuzz:x64-windows
  • 找到 vcpkg.cmake 文件并记下它的路径
  • 确保 C++ 构建工具安装在 Visual Studio 19
  • 下载并提取 OpenCV 和 OpenCV 贡献
  • 在提取的 OpenCV 中创建一个名为 "build" 的空目录
  • 在 opencv-contrib (Link) 中修改 CMakeLists.txt freetype 模块文件夹
  • 修改并运行以下命令:
    • 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 (LINK)
  • 完成必要的更改后,单击“配置并生成”。
  • 使用 Visual Studio19
  • 构建 DEBUG 和 RELEASE 版本
  • 通过从您设置的环境中导入 cv2.freetype 来测试安装。

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

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

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

干杯!