あくまでこれは個人的な備忘録です。
書いて思ったのですが、別にWSLでなくても普通のubuntuでも使えますね。
環境
- Windows 11 Pro (22H2)
環境整備
何と言っても環境整備には苦労するもの・・・
WSLのインストール
Windows PowerShellを管理者モードで立ち上げて、下記コマンドを入力
wsl --install
たったこれだけ。
設定したいユーザー名とパスワードを聞かれるので、それを入力してインストール完了。
lsb_release -a
とすると、ubuntuのバージョンを確認できる。
ちなみに、私の環境では下記の出力が得られました。
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
OpenCVのインストール
C++のコンパイラ・デバッガと、OpenCVのパッケージを丸ごとインストールする。
sudo apt-get update
sudo apt-get install build-essential gdb
sudo apt-get update
sudo apt-get install libopencv-dev
インストールされたOpenCVのバージョンを確認するには、
opencv_version
とする。自分の環境では4.5.4となった。
sudo apt-get install opencv-doc
とすると、テストに使えるデータをインストールできる。
cmakeのインストール
今回はcmakeを使って困憊するするので、cmakeをインストールしておく。
sudo apt install cmake
Visual Studio Codeを使いたいとき
code .
とすることで、WSLからWindowsにインストールされたVisual Studio Codeが使えるようになる。
予め、Visual Studio Codeの拡張機能のWSLをインストールしておく。
サンプルソフトの実装とコンパイル
OpenCVのサンプルソフト
OpenCVで画像を読み込んで表示するまでのサンプルソフトを作成し、main.cppとして保存する。
#include <string>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
int main(int argc, char* argv[]){
const std::string window_name("OpenCV Sample");
cv::Mat img = cv::imread(argv[1]);
if ( img.empty() ) {
return -1;
}
cv::namedWindow(window_name, cv::WINDOW_AUTOSIZE);
cv::imshow(window_name, img);
cv::waitKey(0);
cv::destroyWindow(window_name);
return 0;
}
CMakeLists.txtの作成
cmakeを使ってコンパイルできるようにするために、CMakeLists.txtを作成する。
cmake_minimum_required(VERSION 3.16)
project(OpenCVExample)
find_package(OpenCV REQUIRED)
add_executable(main main.cpp)
target_link_libraries(main ${OpenCV_LIBS})
コンパイル
mkdir build
cd build
cmake ..
make
とコマンドを打つことでコンパイルできる。
実行
./main "/usr/share/doc/opencv-doc/examples/data/LinuxLogo.jpg"
とすると、Linuxと書かれた画像が表示される。