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

问题描述 投票:1回答:2

我正在使用此代码Link但它显示模块对象的错误没有属性我试图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)
python numpy opencv freetype freetype2
2个回答
1
投票

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

我在opencv for 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中找到。


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 /
© www.soinside.com 2019 - 2024. All rights reserved.