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機能を両方使えるようになった。
コメント