C#(.NET)からOpenCVを使う方法、OpenCvSharpのインストール方法

OpenCVはシンプルな画像表示用のウィンドウも用意されているので、簡単に画像処理を試したい場合には非常に良いのですが、少し凝ったウィンドウを作成しようとすると、やっぱり.NETからOpenCVを触りたくなります。

 

.NETの言語(VB.NET、C#、C++/CLI)からOpenCVを使う方法は、だいたい以下の通り

  • .NETのラッパーライブラリを使う
  • 自作でラッパーライブラリを作成する
  • C++/CLIから直接使う

となりますが、実質的にはOpenCvSharpを使う事になると思います。

 

OpenCvSharpのインストール方法は、現在ではNuGetによりプロジェクトごとにインストールします。

 

OpenCvSharpのインストール方法

まず、インストールするC#プロジェクトを用意します。

新規でC#プロジェクトを作成する場合は、次のように行います。

Visual Studio を起動後、新しいプロジェクトの作成をクリックします。

次に Windowsフォームアプリケーション(.NET FRamework)を選択し、次へをクリックします。

プロジェクト名、場所を指定し、作成をクリックします。

これで、以下のようにフォームが表示されたらベースとなるC#プロジェクトが作成されています。

 

次に、このC#プロジェクトにNuGetでOpenCvSharpをインストールします。

メニューのプロジェクト→NuGetパッケージの管理をクリックします。

表示された画面で、 参照 を選択し、その下のテキストボックスに OpenCvSharp と入力すると、OpenCvSharpの一覧が表示されるので、この中から OpenCvSharp.Windows を選択します。

OpenCvSharp.Windows を選択すると、右側に インストール ボタンが表示されるので、これをクリックします。

しばらくすると、インストールが完了します。

OpenCvSharpがインストールされたか?確認するには、プロジェクトの参照の部分の表示を展開すると、OpenCvSharpの名前空間が表示されている事を確認します。

簡単にOpenCvSharpの動作を確認します。

ツールボックスの中から Button を選択し、フォーム上にドラッグ&ドロップします。

ボタンをダブルクリックし、C#コードを表示し、上の方に、

using OpenCvSharp;

と入力し、ボタンイベントの部分に以下のように記載します。

private void button1_Click(object sender, EventArgs e)
{
    var img = new Mat(new OpenCvSharp.Size(256, 256), MatType.CV_8UC3, new Scalar(35, 123, 254));

    Cv2.ImShow("Image", img);
}

参考までに、Formの全コードを示します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using OpenCvSharp;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var img = new Mat(new OpenCvSharp.Size(256, 256), MatType.CV_8UC3, new Scalar(35, 123, 254));
            Cv2.ImShow("Image", img);
        }
    }
}

この状態で、▶開始 ボタンをクリックし、以下のように表示されれば OpenCvSharp のインストールは成功しています。

 

OpenCvSharpを使うポイント

2021年現在、OpenCVの情報はPythonであふれているので、OpenCvSharpの情報を探すのは難しくなってきています。

OpenCvSharpの情報を入手するには、少し古くなりましたが、作者であるSchimaさんのページを参照することをお勧めします。

http://schima.hatenablog.com/archive/category/OpenCvSharp

リファレンスは英語になりますが、こちらです。

http://shimat.github.io/opencvsharp/api/OpenCvSharp.html

 

あとは、OpenCvSharpは基本的にOpenCVのC++版のラッパーライブラリであるため、OpenCVのC++の情報を検索し、OpenCvSharpでは、どうするのか?を推測するのもイイかと思います。

 

参考

https://github.com/shimat/opencvsharp

http://shimat.github.io/opencvsharp/api/OpenCvSharp.html

OpenCVへ戻る