Ubuntu 16.04 に opencv をインストールした後に import cv2 エラーが発生しました

Ubuntu 16.04 に opencv をインストールした後に import cv2 エラーが発生しました

次の手順に従って、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 サンプルを実行できるようになります。

ちなみに、この修正を含めるようにリンクしたチュートリアルも更新しました。

関連情報