
次の手順に従って、Ubuntu に OpenCV3.2.0 と contrib モジュールをインストールします。 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
それは貢献モジュールの既知のバグ具体的には、UTF-8 文字列を描画できる freetype モジュールです。
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 サンプルを実行できるようになります。
ちなみに、この修正を含めるようにリンクしたチュートリアルも更新しました。