2021年3月12日金曜日

【C#】C#でOpenCVを触り始める(OpenCvSharp)

もう3月になってる。
最近は、ちょっといろいろやる事があって、忙しいです。
忙しさにかまけて、ブログの更新を怠っておりました。

せっかくなので、今回はC#
これまでやろうやろうと思っていたものの、今年こそは
今まで先送りにしていたOpenCVでの画像処理をやってみたいなと。
(勉強する必要性が出てきたのもありますが)

そんなこんなで、C# 



C#でOpenCVを触る

OpenCV

これまで、C++でOpenCVを触ることはあったんですが、
結構導入が面倒くさいんですよね。
基本機能だけならインストーラー実行すればできなくはないですが、
OpticalFlowとかの機能も入れるとなると、

コード落として
CMakeでプロジェクト作って
ビルドして
参照関係をあっちゃこっちゃやって…

って、結構面倒なんですよ。

仕事だったら、しょうがねえなってなるんですけど、
自分がヘタクソなのか、結構ミスることもあり、
このあたりの作業は非常にモチベーションを下げてくれます。

「外部参照で~」なんてエラー出された日には
もうやってられねえな?

んで、このあたりの面倒くせえのを楽にできるパッケージが
C#にあると聞いて、試してみたと
そんな感じです。


OpenCvSharpというらしい

なんでも、作者は日本人の開発者であるそうな。
OpenCVのC#用のラッパーフレームワークであるとのことです。

開発者さんのブログはどうも2017年以降は更新がないみたい。
で、このパッケージがどのくらいの新しいものなのかはわからないのですが、
ぶっちゃけとりあえず使えればいいので、やってみましょう。


とりあえずC#プロジェクトを作成する

とりあえず、プロジェクト作成します。
C#のフォームアプリケーションですかね…(てきとう)



フォーム上にボタンを置いて、
ボタンを押したときのイベントでなんか動くようにしておきましょ。



NuGetでOpenCvSharpパッケージを取得する

次にOpenCvSharpパッケージですが、
NuGetとかいう、パッケージマネージャーから取得するそうです。

NuGetパッケージマネージャーは下記の位置からアクセスするみたいです。
「ツール>NuGetパッケージマネージャー>...パッケージの管理」


「参照」から
「OpenCvSharp...」などと検索するとパッケージが見つかります。
今回使うのは「OpenCvSharp3-AnyCPU」




どのプロジェクトにインストールするのか~みたいなところを決めれば
インストールできます。


これでもう、インストールできているらしい。
簡単ですね…。

ためしにコードを書いてみる

パッケージは取得できたみたいなので、
簡単なコードを書いて試してみましょう。

下のような感じのコード。
ボタンを押したイベント内に記載しています。

画像ファイルを読み込んで、ウィンドウ表示して
グレースケール変換して、別ウィンドウで表示するだけです。
名前空間の慣れはありますが、大体C++と同じような感覚で書けますね。

ソース頭に
using OpenCvSharp;
をつけておきます。



これで動かすとこんな感じ。
ボタンを押すと、2つOpenCvからウィンドウ表示されます。



おわり

とりあえずC#でOpenCvSharpの導入をやってみました。
面倒くさくないんだったらC++で全然いいんだけど、面倒くさいからね…。

このくらい導入が簡単なんだったら、気軽にできそう…
出来そうじゃない?

ぼかあ、簡単に、手軽にOpenCVを試したいんです。

一先ず、これで出来そうな部分はやってみようかな、というところですかね。





















0 件のコメント:

コメントを投稿