2024/09/24

OpenCV一瞥

摘要

本文概要記錄於Ubuntu作業系統啟動一個Docker容器來透過OpenCV函式庫進行攝影機畫面擷取的步驟。

本文

本文於Ubuntu 24.04作業系統上,參考這裡來安裝Docker引擎,隨後便執行一個Docker容器,於該容器上安裝OpenCV (Open Source Computer Vision Library)函式庫,接著使用Python程式搭配OpenCV來進行攝影機畫面擷取;其中,Docker容器的概念可以參考這裡,至於使用的攝影機為PlayStation Eye。

終端機(terminal)操作步驟分述如下:

  • 啟動容器
  • 安裝OpenCV
    • 從預先建構的程式進行OpenCV安裝
    • 從原始碼進行OpenCV安裝
  • 執行Python程式以進行攝影機畫面擷取
  • 完成

步驟具體講解可以參考這裡

 

啟動容器

包含以下指令,分別是拉取映象檔、及實例化映象檔為一個容器;這裡的映象檔版本為noble標籤的ubuntu。

docker pull ubuntu:noble
docker run --name ubuntu-inst -it -e DISPLAY --net=host -v $XAUTHORITY:/root/.Xauthority --privileged=true -v ~/Downloads:/experiment ubuntu:noble bash

 

從預先建構的程式進行OpenCV安裝

包含以下指令,更新apt倉庫後直接安裝python3-opencv套件即可。

apt-get update
apt-get install python3-opencv

欲確認安裝結果可以執行python3直譯器並鍵入以下程式碼來進行檢視。

查詢OpenCV版本

 

從原始碼進行OpenCV安裝

包含以下指令,更新apt倉庫、安裝相依套件、下載原始碼、建構與安裝。

apt-get update
apt-get install cmake
apt-get install gcc g++
apt-get install python3-dev python3-numpy
apt-get install libavcodec-dev libavformat-dev libswscale-dev
apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
apt-get install libgtk-3-dev
apt-get install libpng-dev
apt-get install libjpeg-dev
apt-get install libopenexr-dev
apt-get install libtiff-dev
apt-get install libwebp-dev
apt-get install git
cd /experiment
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir build
cd build
cmake ../
make
make install

欲確認安裝結果可以執行python3直譯器並鍵入以下程式碼來進行檢視。

查詢OpenCV版本,續

 

執行Python程式以進行攝影機畫面擷取

參考這裡,把範例程式儲存為tutorial_py_video_display.py檔案,再以python3直譯器執行之。

cd /experiment
python3 tutorial_py_video_display.py

擷取畫面如下所示。

從預先建構的程式進行OpenCV安裝後的攝影機擷取畫面

從原始碼進行OpenCV安裝後攝影機擷取畫面
其中,原始碼內容如下。

範例程式

完成

包含以下指令,即離開(容器context)、刪除容器、和移除映象檔。

exit
docker rm -f ubuntu-inst
docker rmi ubuntu:noble


參考文獻

https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
https://docs.opencv.org/4.x/d2/de6/tutorial_py_setup_in_ubuntu.html
https://docs.opencv.org/4.x/dd/d43/tutorial_py_video_display.html
https://engineer-leo.blogspot.com/2017/12/docker-on-windows-10-pro.html

 

 

沒有留言:

張貼留言