LoginSignup
0
0

OpenCVを使って研究してみた #1

Last updated at Posted at 2024-04-01

初回はOpenCVの開発環境構築までの投稿です。
今後、基礎編から応用編、さらには研究編まで紹介しようと思います。
最終的には論文掲載されたOpenCVの応用方法について言及する予定です。

はじめに

初めまして。パーソルクロステクノロジー株式会社の米津真之介です。
米津玄師とクレヨンしんちゃんを混ぜた感じの名前だと覚えていただければと!!
LinkedInもやっていまして、私の人となりはコチラを参照してください。
仕事では東京大学の山川研究室と共同研究をしておりまして、今期からは工場自動化推進も兼務することになりました。
その中で学んだコト、経験したコト、成果を出したコトなどを投稿できたらと思います。

OpenCVについて

OpenCVは画像処理ライブラリとして有名で、プログラミング言語としてPython、C++、Javaをサポートしています。
近年、Pythonの人気が高いため、最新版のOpenCV 4.**の情報はPythonがほとんどなんですよね。
そのため、OpenCV 4.**のC++でのプログラミングの忘備録を数回に分けて投稿しようと思います。
なんで、C++にこだわるかって??
それは、高速ビジョンシステムの研究に従事しているため、1msで画像処理をしたく、PythonではなくC++でないとその高速性が実現できないためです。
ちなみに、私の研究では1500 Hzで画像入力⇒画像処理⇒結果出力を繰り返しています。

PC環境

  • OS:Windows11 Home 64ビット
  • メモリ:16 GB
  • CPU:AMD Ryzen™ 9 5900HS プロセッサー
  • GPU:NVIDIA® GeForce® GTX 1650
  • 開発環境:Visual Studio
  • 言語:C++

OpenCVの開発環境構築

今回使用するOpenCVのバージョンは最新のOpenCV 4.9.0です。
公式サイトから最新版のバージョンのWindows用をクリックすれば自動でダウンロードが完了します。
ダウンロードしたファイル(今回は「opencv-4.9.0-windows.exe」)をダブルクリックしインストーラーを起動します。
ファイル保存場所を指定し、一式データを保存をインストーラーが実施してくれます。
(※注意点は保存場所のパスに英語以外が入らないようにしてください。)
次に、Windowsマークを右クリックし、システム⇒システムの詳細設定⇒背要塞設定タブ⇒環境変数⇒システム環境変数のPathをクリックし、編集します。
新規で行を追加し、先ほどダウンロードしたファイルの「…\opencv\build\bin」を追記し、適用します。
その後、再起動し、開発環境のVisual Studioを起動します。
「新しいプロジェクト」から「コンソールアプリ(C++)」を選択し、ソリューションファイル一式を作成します。
今回は「TESAchan.sln」で作成しています。今後もテストちゃんにしようかな、、、:stuck_out_tongue_closed_eyes:
プロジェクトタブ⇒TESAchanのプロパティを選択し、プロパティページを開きます。
「VC++ ディレクトリ」に以下のパスを追記します。

  • インクルードディレクトリ:…\opencv\build\include
  • ライブラリディレクトリ:…\opencv\build\x64\vc16\lib
    最後に、cppファイルに以下の文章を追記して、OpenCVの準備は完了です。
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

#ifdef _DEBUG
#pragma comment(lib, "opencv_world490d.lib")
#else
#pragma comment(lib, "opencv_world490.lib")
#endif

int main()
{
	VideoCapture cap(0);
	if (!cap.isOpened())//カメラデバイスが正常にオープンしたか確認.
	{
		return -1;
	}

	while (1)
	{
		Mat img;
		cap >> img;
		imshow("windowName", img);
		waitKey(1);
  		if (key == 113)
		{
			break;
		}
	}
	destroyAllWindows();
	return 0;
}

ちなみに、ライブラリのバージョンNo.のあとの"d"がつくものは「デバック版」で、無印は「リリース版」で使用します。
プロパティ設定で記入してもいいのですが、いつも面倒なのでプログラム中に記述しています。

おわりに

いかがでしたでしょうか?ここまでは標準的なC++でのOpneCVの環境構築です。
おそらく調べながらで、1時間程度でできるかと思います。
Pythonの場合のOpenCVの開発環境構築はもっと早く、開発環境にAnnacondaを使用すれば5分程度で構築が終わります。
こういった点から、近年Pythonが人気なのでしょうね、、、
それでは、次回「OpenCVを使って研究してみた #2」では実際にどういった画像処理を試したか基礎的なところを紹介していければと思います。

参考にした書籍は唯一のOpenCV 4.**の参考書である「OpenCV4基本プログラミング: さらに進化した画像処理ライブラリの定番」という書籍です。
91US2dCWRRL.SY466.jpg

でわでわ:grin:

0
0
2

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
0
0