opencv関係
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
opencv関係 [2021/06/26 20:24] – [OpenCVのインストール] admin | opencv関係 [2022/06/22 21:54] (現在) – makotoa67 | ||
---|---|---|---|
行 1: | 行 1: | ||
===== OpenCV関係 ===== | ===== OpenCV関係 ===== | ||
- | ==== OpenCVのインストール ==== | + | ==== OpenCVのインストール |
+ | |||
+ | 2021/9/11 | ||
+ | 今日は、Xavier NXにOpenCV最新版をインストールしてみる。 | ||
+ | Jetson Nanoでも、いっとき、OpenCVをセットアップして、カメラから得られる画像に対して画像処理するテスト動作まではやってみていた。今回、Xavier NXを購入しましたので、これを契機に、せっかくパフォーマンスが高いXavier NXなので、それを活かしてみたい、というところ。 | ||
+ | |||
+ | [Jetson Nano]OpenCVからCUDAを使ってみる | ||
+ | |||
+ | https:// | ||
+ | |||
+ | にも書かれていますが、NVIDIAのJetsonシリーズを折角使うのですから、NVIDIAのGPU (CUDA)を使いたい。 | ||
+ | 折角のOpenCVの環境なのに、内部的にCPUでしか処理されていない、っていうのはもったいない。 | ||
+ | ということで、CUDAを使用するOpenCVをセットアップして使用したい。 | ||
+ | |||
+ | AastaNV | ||
+ | |||
+ | https:// | ||
+ | |||
+ | 以下のスクリプトも発見。 | ||
+ | |||
+ | Build OpenCV on Nvidia Jetson Nano (mdegans) | ||
+ | |||
+ | https:// | ||
+ | |||
+ | README.mdを見てみると以下のように。 | ||
+ | |||
+ | < | ||
+ | OpenCV build script for Tegra | ||
+ | This script builds OpenCV from source on Tegra (Nano, NX, AGX, etc.). | ||
+ | |||
+ | Related thread on Nvidia developer forum here. | ||
+ | </ | ||
+ | |||
+ | How to Install OpenCV 4.5 on NVIDIA Jetson Nano | ||
+ | |||
+ | https:// | ||
+ | |||
+ | まあ、AastaNVさんのスクリプトの方がOpenCVのバージョンも4.5.0と新しいし、更新は2020年12月、NVIDIAのコピーライトもあるので、こちらに準じておくか。 | ||
+ | |||
+ | install_opencv4.5.0_Jetson.shの中を再確認すると、中でsudoしているようなので、sudoは必要なさそう。 | ||
+ | また、現在の最新版は4.5.3のようなので、version=4.5.3と編集。 | ||
+ | また、sudo sudo ... となっているところあるので、それもsudo一つ消した。(細かい話し) | ||
+ | |||
+ | このインストールスクリプトの内容を確認。 | ||
+ | インストール時のステップとしては、 | ||
+ | |||
+ | * OpenCVに必要なもの一式のインストール | ||
+ | * OpenCV最新版のダウンロード(ソースコード一式) | ||
+ | * ビルド(cmakeから) | ||
+ | * インストール | ||
+ | |||
+ | というところ。 | ||
+ | |||
+ | < | ||
+ | ** Install opencv-4.5.3 successfully | ||
+ | ** Bye :) | ||
+ | </ | ||
+ | |||
+ | Xavier NXもセットアップしたばかりなので、とりあえず、USBカメラを接続。 | ||
+ | / | ||
+ | |||
+ | cheeseでカメラの動作を確認。OK。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== OpenCVのインストール (Jetson Nano編) | ||
Jetson Nanoの標準的な環境でも、普通に、OpenCVをパッケージで導入できるようだが、 | Jetson Nanoの標準的な環境でも、普通に、OpenCVをパッケージで導入できるようだが、 | ||
行 58: | 行 124: | ||
NVIDIA PTX archs: | NVIDIA PTX archs: | ||
</ | </ | ||
+ | |||
+ | ``` | ||
+ | export OPENBLAS_CORETYPE=ARMV8 | ||
+ | ``` | ||
< | < | ||
行 67: | 行 137: | ||
int main(int argh, char* argv[]) | int main(int argh, char* argv[]) | ||
{ | { | ||
- | | + | VideoCapture cap(0); |
- | // | + | |
- | // | + | |
- | cv::VideoCapture cap(0);// | + | |
- | //cap.set(cv::CAP_PROP_FRAME_WIDTH, | + | // |
- | //cap.set(cv::CAP_PROP_FRAME_HEIGHT, | + | // |
- | // | + | |
- | + | ||
- | // | + | |
- | if(!cap.isOpened()) {// | + | if(!cap.isOpened()) { |
- | // | + | |
return -1; | return -1; | ||
} | } | ||
- | int width = cap.get(cv::CAP_PROP_FRAME_WIDTH); | + | int width = cap.get(CAP_PROP_FRAME_WIDTH); |
- | int height = cap.get(cv::CAP_PROP_FRAME_HEIGHT); | + | int height = cap.get(CAP_PROP_FRAME_HEIGHT); |
- | int fps = cap.get(cv::CAP_PROP_FPS); | + | int fps = cap.get(CAP_PROP_FPS); |
| | ||
std::cout << " | std::cout << " | ||
行 93: | 行 156: | ||
printf(" | printf(" | ||
| | ||
- | | + | Mat frame; |
- | while(cap.read(frame)) { // | + | while(cap.read(frame)) { |
- | | + | imshow(" |
- | const int key = cv::waitKey(1); | + | const int key = waitKey(1); |
- | if (key == ' | + | if (key == ' |
std::cout << "dims: " << frame.dims << ", depth(byte/ | std::cout << "dims: " << frame.dims << ", depth(byte/ | ||
- | break;// | + | break; |
- | } else if(key == ' | + | } else if(key == ' |
- | // | + | imwrite(" |
- | | + | |
} | } | ||
} | } | ||
| | ||
- | | + | destroyAllWindows(); |
| | ||
return 0; | return 0; |
opencv関係.1624706663.txt.gz · 最終更新: 2021/06/26 20:24 by admin