错误'module'对象没有属性'freetype'

时间:2017-12-09 08:42:03

标签: python numpy opencv freetype freetype2

我正在使用此代码Link,但它显示错误模块对象没有属性我试图点击安装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)

4 个答案:

答案 0 :(得分:1)

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

我在python2 / 3的opencv中为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中找到。

答案 1 :(得分:0)

  1. 安装harfbuzz和freetype遵循此link
  2. build opencv-contrib遵循此link和此link
  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-packages /

答案 2 :(得分:0)

您只是想念opencv-contrib,可以用pip install opencv-contrib-python安装它。

答案 3 :(得分:0)

[这是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贡献
  • 在提取的OpenCV中创建一个名为“ build”的空目录(不是OpenCV-contrib)
  • 在opencv-contrib(Link)的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来测试安装。

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

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

我建议您观看视频,并保持侧面打开本指南。

干杯!