[w 5 d 1]コンピュータビジョンの概要、OpenCV(Ubuntu 18.04.6 LTS)のインストール


(Ubuntu 18.04.6 LTS)
2022.03.14.
C++、VSコードを使用
プログラマー自主走行Defcos 3期

コンピュータビジョンの概要


コンピュータビジュアル:静止画像(写真)やビデオから有意義な情報を抽出する学問.
イメージよく歌うビデオはビデオですが、最近混用されています.
  • 階調画像:白黒写真.輝度情報を0~255に表示します.[0,255]
  • 真彩色画像:三原色の赤、緑、青をそれぞれ0から255の256級と表す.
  • 圧縮などの要因を考慮しない場合、真彩色画像の容量は階調画像の3倍である.
    従って、通信および処理のリアルタイム性が必要な場合、階調画像がより好ましい.
    C/C++では、各画像は符号なし文字データ形式(1バイト)で記憶される.
    画像はアレイの形式でもマトリクスの形式でも考えられます.
    bmp:ビットの集合.容量が大きい.
    png:無損圧縮.透明度を含む4つのチャネル.
    jpg:圧縮損失.容量が小さい.
    jpgの圧縮率はビデオによって異なり,画素値の変化が大きい高周波ビデオでは圧縮効果が劣る.

    OpenCV[4.5.5 dev](Ubuntu 18.04.6 LTS)のインストール


    Opencv正式インストールドキュメント
    https://docs.opencv.org/4.x/d7/d9f/tutorial_linux_install.htm西。
    Opencv contribのBuildを参照してください.
    # Install minimal prerequisites (Ubuntu 18.04 as reference)
    # 설치위해 필요한 것들 설치
    sudo apt update && sudo apt install -y cmake g++ wget unzip
    # Download and unpack sources
    # 파일 설치
    wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
    wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.x.zip
    unzip opencv.zip
    unzip opencv_contrib.zip
    # Create build directory and switch into it
    mkdir -p build && cd build
    # Configure
    cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules ../opencv-4.x
    # Build: 아래의 둘 중 하나만 사용. make -j4는 쓰레드를 4개 사용하여 빌드타임이 줄어듦.
    # 자신의 쓰레드 수에 맞게 4를 수정해 사용 가능한데, 모르겠으면 cmake --build로 해도 무관.
    cmake --build .
    make -j4
    # Install
    sudo make install
    インターネットで検索したところ、様々な方法があり、公式文書サイトのコンテンツを使ってインストールされ、特に問題はありませんでした.
    Installまで終了正常に動作していることを確認したら、buildフォルダを削除できます.

    VSコード使用環境(Cmake使用)

    #include "opencv2/opencv.hpp"
    上記の内容が含まれている場合はopencvを使用できます.

    Cmakeを使用してエンコードするには、次のドキュメントを参照してください.
    https://docs.opencv.org/4.x/db/df5/tutorial_linux_gcc_cmake.html
    フォルダ内ではCmakeListです.txtとmain.cppが存在する限り、CmakeList.txtには以下の内容が含まれています.
    cmake_minimum_required(VERSION 2.8)
    project( opencv )
    find_package( OpenCV REQUIRED )
    include_directories( ${OpenCV_INCLUDE_DIRS} )
    add_executable( main main.cpp )
    target_link_libraries( main ${OpenCV_LIBS} )
    以降の端末ではopencv templateフォルダにアクセスし、コードを実行するために以下の内容を作成できます.
    $ cmake .
    $ make
    $ ./main
    よく使うので、~/.bashrcで別名を使用する場合は、次の行を追加します.
    alias zxcv='cmake . && make && ./main'
    以降の端末では、対応するフォルダにナビゲートしてzxcvをメモすると、コードを実行できます.
    //main.cpp 예시
    #include <iostream>
    #include "opencv2/opencv.hpp"
    
    int main()
    {
        cv::Mat img = cv::imread("./resources/lenna.bmp",cv::IMREAD_COLOR);
    
        if (img.empty()){
            std::cerr << "Image load failed!" << std::endl;
            return -1;
        }
    
        cv::namedWindow("image");
        cv::imshow("image",img);
        cv::waitKey();
        cv::destroyAllWindows();
        return 0;
    }
    前述したように、フォルダにはresourcesフォルダが存在し、lennaが存在する必要があります.ウィンドウにファイルを表示するにはbmpファイルが必要です.