OpenCVSharpのMatオブジェクトをBitmapオブジェクトに変換

OpenCVSharp コンピュータ

C#でOpenCVを扱うにあたりOpenCVSharpの画像オブジェクトのMatと.NetFrameworkの画像オブジェクトのBitmapに変換する方法を調べてみました。

スポンサーリンク

OpenCVSharpの導入方法

ソース

// 
// MatをBitmapに変換
// 

using System;
using System.Windows.Forms;
using System.Drawing;

using OpenCvSharp;
using OpenCvSharp.Extensions;

// コンパイル
// csc MatToBmp.cs /r:OpenCvSharp.dll /r:OpenCvSharp.Extensions.dll

class Form1 : Form
{
    PictureBox picbox1;

    // コンストラクタ
    Form1()
    {
        picbox1 = new PictureBox {
            Dock = DockStyle.Fill,
            SizeMode = PictureBoxSizeMode.Zoom,
        };
        this.Controls.Add(picbox1);

        using (var mat = new Mat(@"H:\csharp\opencv\opencv_logo.png"))j
        {
            picbox1.Image = BitmapConverter.ToBitmap(mat);
        }
    }
    // エントリーポイント
    [STAThread]
    static void Main()
    {
        Application.Run(new Form1());
    }
}

実行


画像ファイルからMatオブジェクトを生成し、BitmapConverter.ToBitmap()でBitmapに変換してPictureboxのImageにセットして画像を表示しています。
この方法を抑えておくとOpenCVSharpで加工をした結果のMatオブジェクトをPcitureBoxで表示させるようなシナリオで活用できます。

コメント