错误“module”对象没有属性“freetype”

2024-06-18 21:17:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用这段代码Link,但它显示的错误是module object has no attribute我试图pip安装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)

Tags: pipno代码importimgobject错误np
3条回答

如果cv2.freetype没有在python中运行,那么仍然可以使用freetypy模块。在

我已经为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)

它在后台使用freetypy模块。pilasopuncv实际上是一个将旧的PIL项目迁移到OPENCV的项目。安装时

^{pr2}$

或者

pip install PILasOPENCV 

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

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

  1. 安装harfbuzz,freetype如下link
  2. 按照这个link和这个link构建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-packages/

相关问题 更多 >