PyQt5とOpenCVを同時に使おうとしてエラー If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config

PyQt5のアプリケーションを弄っていた時に、cv2.imshow()をしようとしたら表題のエラー。

If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'

qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.

Aborted (core dumped)

PyQtとOpenCVの両方でGUI機能を使おうとすると競合?するらしい。

GUI機能を使わないのなら、GUIなしのOpenCVを入れれば解決。

pip uninstall opencv-python
pip install opencv-python-headless

今回は両方のGUI機能を使いたかったので、別の解決方法を調べてみた。

まずはエラーに書いてあるパッケージを入れてみる。

sudo apt-get install pkg-config
sudo apt-get install libgtk2.0-dev

しかしエラーは消えなかったので、続きに書いてある通りcmakeをやり直してみる。

ソースコードからビルドする方法を公式サイトで確認する。

OpenCV: Install OpenCV-Python in Ubuntu

必要なライブラリをインストール。以下はPython3を想定。

sudo apt-get install cmake
sudo apt-get install gcc g++
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt-get install libgtk-3-dev

様々な拡張子に対応するためにオプションのライブラリも入れる。

sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev

numpyを使うので無ければインストール。

sudo apt-get install python3-numpy

これで準備完了。ソースコードをダウンロードしてビルドする。

git clone https://github.com/opencv/opencv.git
cd opencv
mkdir build
cd build
cmake ../
make

CPU AMD Ryzen 5 5600G 3.9GHz 6コア12スレッド

RAM 32GB

の自作PCでビルド時間は30分ぐらいだった。

ビルドが終わればインストール。

sudo make install

/usr/local/ にインストールされるので、pipでインストールしたユーザー領域のOpenCVは削除しておく。

pip uninstall opencv-python

これでエラーは解決し、PyQt5とOpenCVのGUI機能を両方使えるようになった。

ディジタル画像処理[改訂第二版]

コメント

タイトルとURLをコピーしました