1
0

CentOSでopencvのVideoCaptureを使いたい

Last updated at Posted at 2024-06-07

0. はじめに

windows環境でopencv-pythonのVideoCaptureを使ったアプリの開発を行い、それをVirtualBoxに立てたlinuxで動かそうとしたら死ぬほどハマった。
作っていたものはopencvのVideoCaptureを使うのだがどうもlinux上だとffmpegを入れてopencvから組み立てなければいけないっぽい。
0から環境を作る。

環境
Red-Hat (64bit)
CentOS-8.5.2111

この記事を書きながらやってるので、もしこの記事を見ながら環境を作る人は読んだとおりに実行するんじゃなくてやろうと思ってる部分の少し先を読んで前もってinstallするとかの方がいい

1. ffmpeg

基本

これでうまくいけば解決

sudo yum install epel-release -y
sudo yum groupinstall "Development Tools" -y
sudo yum install cmake git pkgconfig -y
sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
sudo yum install ffmpeg ffmpeg-devel -y

ffmpeg -version

epel-releaseがうまくいかない

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

libSDL2-2.0.so.0()(64bit) が無い

sudo yum localinstall --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
sudo yum localinstall --nogpgcheck https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
sudo yum install ffmpeg ffmpeg-devel -y

SDLがない

sudo yum install SDL2 SDL2-devel -y
sudo yum install ffmpeg ffmpeg-devel -y

それでも解決しない場合パワーツール弄って再設定したらいけた

sudo yum config-manager --set-enabled PowerTools
sudo yum config-manager --set-enabled powertools
sudo yum install SDL2 SDL2-devel -y
sudo yum localinstall --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
sudo yum localinstall --nogpgcheck https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm

sudo yum install ffmpeg ffmpeg-devel -y

2. OpenCV

今回は全然ハマらなかった
依存関係のパッケージをインストール

sudo yum install gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-devel libjpeg-turbo-devel libtiff-devel -y

gitからOpencvをクローン、設定

cd ~
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cmake -D CMAKE_BUILD_TYPE=Release \
  -D CMAKE_INSTALL_PREFIX=/usr/local \
  -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..

make -j$(nproc)
sudo make install
sudo ldconfig

3. python入れて確認

pip install --upgrade pip
pip install numpy
pip install opencv-python

あとはpip install opencv-pythonを入れるだけ

Building wheelから進まない

Building wheels for collected packages: opencv-python
 Building wheel for opencv-python (pyproject.toml)

終わらない…
pip install --upgrade pipしてるのになぜ?

pip install –upgrade pip setuptools wheel

でアップグレードしてから再度実行
https://stackoverflow.com/questions/63669752/building-wheel-for-opencv-python-pep-517-runs-forev
とはいえビルドプロセスが大きすぎて3時間かかったとの報告もある
自分は30分~1時間でした

pip install opencv-python -vvv

で実行して進行状況を確認しながらの方がいいかも

致命的エラー: Python.h: そのようなファイルやディレクトリはありません

1時間くらいたって、最後の90%くらいで出てくるエラー、心折れる
開発パッケージがないっぽいので

sudo yum install python3-devel -y

で入れる

scikit-buildがない

環境を変えてやったら怒られた

sudo pip install scikit-build

をしてから

4. 実行テスト

python3 -m venv opencv-env
source opencv-env/bin/activate

と仮想環境を立て挙げてopencv周りをpipで引っ張る

pip install --upgrade pip
pip install numpy
pip install opencv-python

これで動きました

5. 終わりに

近いうちにまた環境を立ち上げることになるのでこれを元に環境構築をする予定。
ハマったら記事の内容も修正します

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0