在Ubuntu上按照以下步骤安装带有contrib模块的OpenCV3.2.0: http://www.samontab.com/web/2017/06/installing-opencv-3-2-0-with-contrib-modules-in-ubuntu-16-04-lts/
我运行python示例代码:
cd <opencv3.2.0_dir>/samples/python/
python asift.py
我收到以下错误:
Traceback (most recent call last):
File "asift.py", line 26, in <module>
import cv2
ImportError: /usr/local/lib/libopencv_freetype.so.3.2: undefined symbol: hb_shape
运行其他python示例也会得到同样的错误。
我在 Google 上找不到答案。我该如何解决?
答案1
那是一个contrib 模块中的已知错误,特别是在 freetype 模块中,它允许您绘制 UTF-8 字符串。
在编译 OpenCV 3.2 之前,运行以下命令:
sed -i 's/${freetype2_LIBRARIES} ${harfbuzz_LIBRARIES}/${FREETYPE_LIBRARIES} ${HARFBUZZ_LIBRARIES}/g' ../opencv_contrib-3.2.0/modules/freetype/CMakeLists.txt
此后,您应该能够运行 Python 示例。
顺便说一下,我还更新了您链接的教程以包含此修复程序。