photo_denoise_TVL1

[32/64bit] Primal-dualアルゴリズムは,特殊な変分問題(ある関数を最小化するための関数を求める問題)を解くためのアルゴリズムです.特に、画像のノイズ除去は、変分問題と見なすことができるので、プライマル・デュアル・アルゴリズムを使ってノイズ除去を行うことができ、まさにそれを実現しています。

photo_denoise_TVL1 p1,p2,p3,p4,p5

p1 = sptr : IntPtr[] observations
p2 = int : int observationsSize
p3 = sptr : IntPtr result
p4 = double : double lambda
p5 = int : int niters

(プラグイン / モジュール : OpenCvSharpExtern.dll)

解説

この実装は、2013年7月のブログエントリ[177]から取ったもので、Pythonですぐに使えるソースコードも含まれていたことに注意してください。その後,2013年7月末にVadim PisarevskyによってopenCVを用いてC++に書き直され,最終的には後続の著者によって若干の改良が加えられました.このアルゴリズムの詳細な議論と正当性は[42]に記載されていますが,ここでは[177]に倣ってざっと目を通すのがよいでしょう.まず,1バイトのグレイレベル画像を,画素の矩形領域からの関数と考えます(これは,集合 ??? -? ??? ????)。1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\このように考えて、同じ大きさの画像\(x\)が与えられたとき、ノイズ化された画像を\(f_i\)とします。どれくらいひどいかを式で表すと、[??>?<?>?<?>]ということになります。最初の付記は,画像が滑らかであること(理想的には,勾配がゼロであること,つまり,一定であること)を示し,2番目の付記は,結果が我々が得た観測値に近いものであることを示しています。????? ) ????? ) ????? ) ????? ) ????? ) ????? ) ????? ) ????? ) ????? ) ????? )

元関数名(C#): photo_denoise_TVL1
元DLLエクスポート名: photo_denoise_TVL1
参照元CSファイル: Internal\PInvoke\NativeMethods\photo\NativeMethods_photo.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) photo_denoise_TVL1(
    cv::Mat **observations, int observationsSize, cv::Mat *result, double lambda, int niters)
{
    BEGIN_WRAP
    std::vector<cv::Mat> observationsVec(observationsSize);
    for (int i = 0; i < observationsSize; i++)
    {
        observationsVec[i] = *observations[i];
    }
    cv::denoise_TVL1(observationsVec, *result, lambda, niters);
    END_WRAP
}

情報

プラグイン / モジュールOpenCvSharpExtern.dll
バージョン1.00
作成日2021/11/30
著作者inovia
URLhttps://hsp.moe/
備考#include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as"
使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること
タイプOpenCVSharpラッパーDLL
グループNativeMethods_photo
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\OpenCvSharpExtern.hs