OpenCvSharpのサンプル「画像フィルタによるアンシャープマスキング(先鋭化)」

C# コンピュータ
C#
アンシャープマスキング処理で画像をシャープに加工します。

実行環境構築

プロジェクトの作成

mkdir プロジェクト名
cd プロジェクト名 
dotnet new console
dotnet add package OpenCvSharp4.Windows
dotnet add package OpenCvSharp4.Extensions
code .

ソースプログラム

namespace Filter2D;

// 
// OpenCvSharpのサンプル「画像フィルタによるアンシャープマスキング(先鋭化)」
// 

using OpenCvSharp;
using OpenCvSharp.Extensions;
class Program
{
    static void Main()
    {
        var path = @"D:\csharp\OpenCVSample\202311051923.png";
        using var sharp = new Mat();
        using var blur = new Mat();
        // 画像ファイルの読み込み
        using var org = Cv2.ImRead(path, ImreadModes.Unchanged);
        // ぼかし処理
        Cv2.Blur(org, blur, new Size(3, 3));
        // フィルターの強度
        double k = 5.0d;
        // カーネル
        double[,] kernel = {
            { -k/9.0d,        -k/9.0d, -k/9.0d},
            { -k/9.0d, 1.0+8.0*k/9.0d, -k/9.0d},
            { -k/9.0d,        -k/9.0d, -k/9.0d},
        };
        // 画像フィルタ(アンシャープマスキングフィルタ)
        Cv2.Filter2D(blur, sharp, -1, InputArray.Create(kernel));
        // 確認のため画像を表示
        Cv2.ImShow("blur", blur);
        Cv2.ImShow("sharp", sharp);
        Cv2.WaitKey();
    }
}

実行

dotnet run
ぼかし処理した画像

アンシャープマスキングフィルタ後画像

コメント