OpenCV(英語のオープンソースコンピュータービジョンライブラリ、オープンソースコンピュータービジョンライブラリ)は、コンピュータービジョンアルゴリズム、画像処理、汎用のオープンソース数値アルゴリズムのライブラリです。 また、Python、Java、Ruby、Matlab、Luaなどの言語向けに開発されたC / C ++で実装されています。 学術および商業目的で自由に使用できます-BSDライセンスの条件の下で配布されます。
私は最近このライブラリに出会いました。 サイトtoster.ruで、私はこれらの珍しいトピックについて質問し、回答の1つで、このライブラリを使用した結果へのリンクを受け取りました。 それらのいくつかを次に示します。
www.youtube.com/watch?v=h9kPI7_vhAU
www.youtube.com/watch?v=256bg5_vNvg
www.youtube.com/watch?v=PUhwGTSNGhI
開始するには、 www.emgu.com / wiki / index.php / Main_Pageから必要なファイルをダウンロードする必要があります。
Emgu CVは、OpenCV画像処理ライブラリ用のクロスプラットフォーム.Netアドオンです。 C#、VB、VC ++、IronPythonなどの.NET互換言語で動作するように設計されており、Visual Studio、Xamarinで使用でき、Windows、Linux、Mac OS X、IOS、AndroidおよびWindows Phone
現在のバージョンをダウンロードしてインストールしたら、作業を開始できます。 この例では、人の顔と目を見つけて認識します。
これを行うには、必要なすべての情報を含む既製のxmlファイルが必要です。 言われたように、OpenCVはオープンソースプロジェクトです。したがって、必要に応じて、多くの既製のソリューションを見つけることができます。
動作させるために、適切なライブラリを接続します。
using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; using Emgu.CV.Cvb;
最初に、Captureクラスのインスタンスを作成する必要があります。
Capture capture = new Capture();
このオブジェクトは、ビデオストリームの傍受を担当します。
顔や目を認識するオブジェクトを作成するには、すばらしいHaarCascadeクラスを使用します。 分類器(つまり、Haarのような関数で動作する強制分類器のカスケード)は、特定のオブジェクト(たとえば、顔や車)の種類の数百のサンプルでトレーニングされ、同じサイズ(たとえば20x20)にスケーリングする肯定的な例を挙げ、否定的な例を挙げます-同じサイズの任意の画像。
つまり、コンストラクターでHaarCascadeクラスのインスタンスを作成するときに、必要なデータを含むxmlファイルへのリンクを指定します。
//for face HaarCascade faceCascade = new HaarCascade("haarcascade_frontalface_alt.xml"); //for eye HaarCascade eyeCascade = new HaarCascade("haarcascade_eye.xml");
インターセプトされたフレームをさらに処理するには、QueryFrame()メソッドを使用する必要があります。
Image<Bgr, Byte> image = capture.QueryFrame();
フレームを取得し、デバイス(Webカメラ)から送信されます。 次に、見つけた画像をグレーに変換します。
Image<Gray, Byte> grayImage = image.Convert<Gray, Byte>();
次に、顔と目に属する属性を見つける必要があります。
var Face = grayImage.DetectHaarCascade(faceCascade)[0]; foreach (var face in Face) { // , , . image.Draw(face.rect, new Bgr(255, 255, 255), 10); } // var Eye = grayImage.DetectHaarCascade(eyeCascade)[0]; foreach (var eye in Eye) { image.Draw(eye.rect, new Bgr(0, 0, 255), 3); }
まあ、それはほとんどすべてです。どこかで取得した画像を表示するだけです。 これを行うには、imageBoxコントロールを使用します(手動で追加する必要があります)。
imageBoxEyeAndFaceDetector.Image = image;
これで、ボタンを押すなどして、適切な場所に作業を設定できます。
Application.Idle += Method;
XMLファイルをダウンロードするためのリンク: ifolder.com.ua/z3fihkcet19n.html
また、マシンビジョンwww.youtube.com/watch?v=TyEfJyJA7gQの操作の一般的な理解については、このビデオをご覧になることをお勧めします。
頑張ってください。
参照資料
www.emgu.com/wiki/index.php/Main_Page
en.wikipedia.org/wiki/OpenCV
devnuances.com