C#/VB.NETで画像処理①<フォームアプリケーションの作成>
こんにちは、SKです。
C#/VB.NETで画像処理シリーズの第1弾。
まずはフォームアプリケーションを作成します。
OpenCVSharpを用いた画像処理アプリのベースを準備していきます。
OpenCVSharpについて知りたい方は、下記を参照してください。
skprogramlab.hatenablog.com
動画手順
①Visual Studioプロジェクトの作成
新しいプロジェクトの作成。
C#を選び、Windows フォームアプリケーション を選択します。
プロジェクト名や保存場所を選択。フレームワークは.NET Framework 4.8を選択します。
フォームアプリケーションが作成されます。
②OpenCVSharpの参照設定
OpenCVSharpのDLLをダウンロードし、プロジェクトから参照できるよう設定していきます。
※NuGetというパッケージ管理機能を使ってインストールすることも可能ですが、通常は不要なDLLも含めすべて入ってしまいミニマム構成ではなくなってしまうのが個人的には好きではないので、公式HPからダウンロードし参照設定を行います。
GithHubのリリースページから最新Ver.「OpenCvSharp-4.2.0-20200208.zip」をダウンロードし、好きな場所に解凍します。
(2020/3/10現在の最新Ver.は4.2.0)
このような構成になっています。
Visual Studioのソリューションエクスプローラー→"参照"で右クリック→参照の追加を選択。
<OpenCVSharpフォルダ>\ManagedLib\net48フォルダ内の"OpenCVSharp.dll"、"OpenCVSharp.Extensions.dll"を選択し、追加します。
参照リストに追加されたことを確認します。
次に、ソリューションエクスプローラーのプロジェクト名で右クリック→追加→既存の項目を選択。
<OpenCVSharpフォルダ>\NativeLib\win\x86フォルダ内の"OpenCvSharpExtern.dll"を選択し、追加します。
ソリューションエクスプローラー内のOpenCvSharpExtern.dllを選択し、プロパティウィンドウの"出力ディレクトリにコピー"を"新しい場合はコピーする"にします。
※こうすることで、ビルド時にDLLファイルが実行フォルダに作成されます。
③動作確認
サンプルコードを書き、OpenCVSharpのテストを行います。
デフォルトのForm1のデザイナー上でダブルクリックし、Loadイベントを作成します。
Loadイベント内に、下記のサンプルコードを記述します。
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 Form1_Load(object sender, EventArgs e) { Mat img = new Mat(500, 500, MatType.CV_8UC3, Scalar.Blue); Cv2.ImShow("img", img); Cv2.WaitKey(1); } } }
VB.NETだとこんな感じです。
Imports OpenCvSharp Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim img As New Mat(500, 500, MatType.CV_8UC3, Scalar.Blue) Cv2.ImShow("img", img) Cv2.WaitKey(1) End Sub End Class