繁体   English   中英

错误“模块”对象没有属性“freetype”

[英]Error 'module' object has no attribute 'freetype'

我正在使用此代码链接,但它显示模块对象没有属性的错误我尝试 pip install freetype 但什么也没发生。 任何人都可以请指导我。

import cv2
import numpy as np   
img = np.zeros((100, 300, 3), dtype=np.uint8)

ft = cv2.freetype.createFreeType2()
ft.loadFontData(fontFileName='Ubuntu-R.ttf',
                id=0)
ft.putText(img=img,
           text='Quick Fox',
           org=(15, 70),
           fontHeight=60,
           color=(255,  255, 255),
           thickness=-1,
           line_type=cv2.LINE_AA,
           bottomLeftOrigin=True)

cv2.imwrite('image.png', img)

如果 cv2.freetype 不在 python 中运行,你仍然可以使用 freetype-py 模块。

我在 opencv 中为 python2/3 编写了一个围绕 PIL 库 api 调用的包装器,可以通过以下方式使用:(从https://github.com/bunkahle/PILasOPENCV下载)

from __future__ import print_function
import PILasOPENCV as Image
import PILasOPENCV as ImageDraw
import PILasOPENCV as ImageFont
import cv2

font = ImageFont.truetype("arial.ttf", 30)
print(font)
im = Image.new("RGB", (512, 512), "grey")
draw = ImageDraw.Draw(im)
text = "Some text in arial"
draw.text((100, 250), text, font=font, fill=(0, 0, 0))
print(ImageFont.getsize(text, font))
mask = ImageFont.getmask(text, font)
print(type(mask))
cv2.imshow("mask", mask)
im.show()
im_numpy = im.getim()
print(type(im_numpy), im_numpy.shape, im_numpy.dtype)

它在后台使用 freetype-py 模块。 PILasOPENCV其实是一个将旧的PIL项目迁移到OPENCV的项目。 安装

setup.py install 

要么

pip install PILasOPENCV 

更多细节和测试可以在github中找到。

您只是缺少opencv-contrib ,您可以使用pip install opencv-contrib-python安装它。

  1. 按照此链接安装harfbuzz和 freetype
  2. 构建 opencv-contrib 按照此链接和此链接
  3. 将符号链接添加到本地站点包中的绑定:

    ln -s /usr/local/lib/python3.5/site-packages/cv2.cpython-35m-x86_64-linux-gnu.so $HOME/.pyenv/versions/3.5.2/lib/python3.5/site -包/

[这是一个 WINDOWS 特定指南]

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

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

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

  • 安装 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 contrib
  • 在提取的 OpenCV(不是 OpenCV-contrib)中创建一个名为“build”的空目录
  • 在 opencv-contrib ( 链接) 中修改 freetype 模块文件夹中的 CMakeLists.txt
  • 修改并运行以下命令:
    • cmake -G "Visual Studio 16 2019" -BD:\\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 构建调试和发布版本
  • 通过从您设置的环境中导入 cv2.freetype 来测试安装。

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

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

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

干杯!

我发现opencv-contrib-python-4.5.3.56没有freetype 我将它降级到版本4.4.0.46 ,然后它就可以工作了。

pip3 install opencv-contrib-python==4.4.0.46

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM