OpenCV 4.5.3(日本語機械翻訳)
関数

関数

CV_EXPORTS_W void cv::fastNlMeansDenoising (InputArray src, OutputArray dst, float h=3, int templateWindowSize=7, int searchWindowSize=21)
Non-Local Means Denoisingアルゴリズムを使った画像のノイズ除去の実行http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/を用いて、画像のノイズ除去を行います。ノイズはガウスホワイトノイズを想定[【詳解】(英語]
CV_EXPORTS_W void cv::fastNlMeansDenoising (InputArray src, OutputArray dst, const std::vector< float > &h, int templateWindowSize=7, int searchWindowSize=21, int normType=NORM_L2)
Non-Local Means Denoisingアルゴリズムを使った画像のノイズ除去の実行http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/を用いて、画像のノイズ除去を行います。ノイズはガウスホワイトノイズを想定[【詳解】(英語]
CV_EXPORTS_W void cv::fastNlMeansDenoisingColored (InputArray src, OutputArray dst, float h=3, float hColor=3, int templateWindowSize=7, int searchWindowSize=21)
FastNlMeansDenoising 関数を,色付き画像用に変更しました.[【詳解】(英語]
CV_EXPORTS_W void cv::fastNlMeansDenoisingMulti (InputArrayOfArrays srcImgs, OutputArray dst, int imgToDenoiseIndex, int temporalWindowSize, float h=3, int templateWindowSize=7, int searchWindowSize=21)
fastNlMeansDenoisingMulti関数を,短時間に連続して撮影された画像群用に改良したものです.例えば、ビデオなどです。このバージョンの関数は,グレースケール画像や,色空間を利用した手動操作のためのものです.詳細についてはhttp://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394 [【詳解】(英語]
CV_EXPORTS_W void cv::fastNlMeansDenoisingMulti (InputArrayOfArrays srcImgs, OutputArray dst, int imgToDenoiseIndex, int temporalWindowSize, const std::vector< float > &h, int templateWindowSize=7, int searchWindowSize=21, int normType=NORM_L2)
fastNlMeansDenoisingMulti関数を,短時間に連続して撮影された画像群用に改良したものです.例えば、ビデオなどです。このバージョンの関数は,グレースケール画像や,色空間を利用した手動操作のためのものです.詳細についてはhttp://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394 [【詳解】(英語]
CV_EXPORTS_W void cv::fastNlMeansDenoisingColoredMulti (InputArrayOfArrays srcImgs, OutputArray dst, int imgToDenoiseIndex, int temporalWindowSize, float h=3, float hColor=3, int templateWindowSize=7, int searchWindowSize=21)
FastNlMeansDenoisingMulti 関数の色付き画像シーケンスへの適用[【詳解】(英語]
CV_EXPORTS_W void cv::denoise_TVL1 (const std::vector< Mat > &observations, Mat &result, double lambda=1.0, int niters=30)
Primal-dual アルゴリズムは,特殊な変分問題(ある関数を最小化するための関数を求める問題)を解くためのアルゴリズムです.特に画像のノイズ除去は、変分問題と見なすことができるため、プライマル・デュアル・アルゴリズムを使用してノイズ除去を行うことができ、実際に実装されています。[【詳解】(英語]
CV_EXPORTS void cv::cuda::nonLocalMeans (InputArray src, OutputArray dst, float h, int search_window=21, int block_size=7, int borderMode=BORDER_DEFAULT, Stream &stream=Stream::Null())
単純化されていない純粋な非局所的手段によるノイズ除去を行うため,高速ではありません.[【詳解】(英語]
CV_EXPORTS void cv::cuda::fastNlMeansDenoising (InputArray src, OutputArray dst, float h, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
Non-Local Means Denoisingアルゴリズムを使った画像のノイズ除去の実行http://www.ipol.im/pub/algo/bcm_non_local_means_denoisingを用いて、画像のノイズ除去を行います。ノイズはガウスホワイトノイズを想定[【詳解】(英語]
CV_EXPORTS void cv::cuda::fastNlMeansDenoisingColored (InputArray src, OutputArray dst, float h_luminance, float photo_render, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
FastNlMeansDenoising 関数を,色付き画像用に変更しました.[【詳解】(英語]

詳解

関数詳解

denoise_TVL1()

CV_EXPORTS_W void cv::denoise_TVL1 ( const std::vector< Mat > & observations,
Mat & result,
double lambda = 1.0,
int niters = 30
)

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

なお、この実装は、2013年7月のブログエントリ[MA13]を参照してください。この実装は、2013年7月のブログエントリー[MA13]から引用したもので、Pythonですぐに使えるソースコードも含まれていました。その後,2013年7月末にVadim PisarevskyによってopenCVを使用してC++に書き換えられ,最終的には後続の著者によって若干修正されました.

このアルゴリズムの詳細な議論と正当性は、以下の文献にあります。[ChambolleEtAl]をご覧ください.に掲載されていますが、ここでは以下のようにざっと目を通しておくとよいでしょう。[MA13]を参照してください。. まず始めに,1バイトのグレーレベル画像を,画素の矩形領域(あるものについては,集合$\left\{(x,y)\in\mathbb{N}\times\mathbb{N}\mid 1\leq x\leq n,\;1\leq y\leq m\right\}$に対して$m,\;n\in\mathbb{N}$)から$\{0,1,\dots,255\}$. ノイズのかかった画像を次のように表します。$f_i$このように考えると,同じ大きさのある画像$x$とすると,同じ大きさの画像があるとき,それがどの程度悪いかを次の式で測ることができます。

\[\left\|\left\|\nabla x\right\|\right\| + \lambda\sum_i\left\|\left\|x-f_i\right\|\right\|\]

$\|\|\cdot\|\|$ここでは$L_2$-ご覧のように、1つ目の付記は、画像が滑らかであること(理想的には、勾配がゼロであること、つまり一定であること)、2つ目の付記は、結果が得られた観測値に近いことを意味しています。もしも$x$を関数として扱うと、これはまさに我々が最小化しようとしている関数であり、ここでPrimal-Dualアルゴリズムが登場します。

引数
observations この配列には、復元したい画像のノイズバージョンが1つ以上含まれている必要があります。
result ここには、ノイズ除去された画像が格納されます。必要に応じて自動的に割り当てられるので、記憶領域を事前に確保する必要はありません。
lambda 上の式では以下に対応します。$\lambda$に相当します。拡大すると、滑らかな(ぼやけた)画像は、詳細な(しかしノイズが多いかもしれない)画像よりも好意的に扱われます。大雑把に言えば、小さくなるほど、結果として、よりぼやけた画像になりますが、より深刻な異常値が除去されます。
niters アルゴリズムを実行する反復回数。もちろん、反復回数は多ければ多いほどいいのですが、定量的に絞り込むのは難しいので、デフォルトのままにしておき、結果が悪ければ増やしてください。

fastNlMeansDenoising() [1/3]

CV_EXPORTS_W void cv::fastNlMeansDenoising ( InputArray src,
OutputArray dst,
const std::vector< float > & h,
int templateWindowSize = 7,
int searchWindowSize = 21,
int normType = NORM_L2
)

Non-Local Means Denoisingアルゴリズムを使った画像のノイズ除去の実行http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/を用いて、画像のノイズ除去を行います。ノイズはガウスホワイトノイズを想定

引数
src 入力 8ビットまたは16ビット(NORM_L1の場合のみ)の1チャンネル,2チャンネル,3チャンネル,4チャンネルの画像.
dst src と同じサイズ,同じタイプの画像を出力します.
templateWindowSize 重みの計算に利用されるテンプレートパッチのサイズ(ピクセル単位).奇数でなければいけません.推奨値 7ピクセル
searchWindowSize 与えられたピクセルの加重平均を計算するためのウィンドウのサイズ(ピクセル単位).奇数にしてください。searchWindowsSizeが大きいほど、ノイズ除去にかかる時間が長くなります。推奨値:21ピクセル
h フィルタの強度を調整するパラメータの配列で,1つのパラメータを全チャンネルに適用するか,あるいはdstの各チャンネルに1つずつ適用します.hの値が大きいと、ノイズは完全に除去されるが、画像のディテールも除去される。hの値が小さいと、ディテールは維持されるが、ノイズも若干残る。
normType ウェイト計算に使用するノルムの種類。NORM_L2 または NORM_L1 のいずれかです。

この関数は、グレースケール画像に適用することを想定しています。カラー画像の場合は, fastNlMeansDenoisingColored を参照してください.この関数の高度な利用法として,異なる色空間を持つカラー画像を手動でノイズ除去することができます.fastNlMeansDenoisingColored では,画像を CIELAB 色空間に変換した後,L成分とAB成分をそれぞれ異なる h パラメータで別々にノイズ除去するという手法が用いられています.

fastNlMeansDenoising() [2/3]

CV_EXPORTS void cv::cuda::fastNlMeansDenoising ( InputArray src,
OutputArray dst,
float h,
int search_window = 21,
int block_size = 7,
Stream & stream = Stream::Null()
)

Non-Local Means Denoisingアルゴリズムを使った画像のノイズ除去の実行http://www.ipol.im/pub/algo/bcm_non_local_means_denoisingを用いて、画像のノイズ除去を行います。ノイズはガウスホワイトノイズを想定

引数
src 入力 8 ビットの 1 チャンネル,2 チャンネル,3 チャンネル画像.
dst src と同じサイズ,同じタイプの画像を出力します.
h フィルタの強さを調整するパラメータ。h の値が大きいと,ノイズは完全に除去されるが,画像の細部も除去される.h の値が小さいと,細部は維持されるが,ノイズも若干残る
search_window 与えられたピクセルの加重平均を計算するために利用される窓のサイズを,ピクセル単位で指定します.奇数にしてください。search_windowが大きいほど、ノイズ除去にかかる時間が長くなります。推奨値:21ピクセル
block_size 重みの計算に利用されるテンプレートパッチのサイズ(ピクセル単位).奇数でなければいけません.推奨値 7ピクセル
stream Stream非同期呼び出しでは,この値を推奨します.

この関数は,グレースケール画像への適用を想定しています.カラー画像の場合は, FastNonLocalMeansDenoising::labMethod を参照してください.

参照
fastNlMeansDenoising

fastNlMeansDenoising() [3/3]

CV_EXPORTS_W void cv::fastNlMeansDenoising ( InputArray src,
OutputArray dst,
float h = 3,
int templateWindowSize = 7,
int searchWindowSize = 21
)

Non-Local Means Denoisingアルゴリズムを使った画像のノイズ除去の実行http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/を用いて、画像のノイズ除去を行います。ノイズはガウスホワイトノイズを想定

引数
src 入力 8ビットの1チャンネル,2チャンネル,3チャンネル,4チャンネル画像.
dst src と同じサイズ,同じタイプの画像を出力します.
templateWindowSize 重みの計算に利用されるテンプレートパッチのサイズ(ピクセル単位).奇数でなければいけません.推奨値 7ピクセル
searchWindowSize 与えられたピクセルの加重平均を計算するためのウィンドウのサイズ(ピクセル単位).奇数にしてください。searchWindowsSizeが大きいほど、ノイズ除去にかかる時間が長くなります。推奨値:21ピクセル
h フィルタの強さを調整するパラメータ。h の値が大きいと,ノイズは完全に除去されるが,画像の細部も除去される.h の値が小さいと,細部は維持されるが,ノイズも若干残る

この関数は、グレースケール画像に適用することを想定しています。カラー画像の場合は, fastNlMeansDenoisingColored を参照してください.この関数の高度な利用法として,異なる色空間を持つカラー画像を手動でノイズ除去することができます.fastNlMeansDenoisingColored では,画像を CIELAB 色空間に変換した後,L成分とAB成分をそれぞれ異なる h パラメータで別々にノイズ除去するという手法が用いられています.

fastNlMeansDenoisingColored() [1/2]

CV_EXPORTS_W void cv::fastNlMeansDenoisingColored ( InputArray src,
OutputArray dst,
float h = 3,
float hColor = 3,
int templateWindowSize = 7,
int searchWindowSize = 21
)

FastNlMeansDenoising 関数を,色付き画像用に変更しました.

引数
src 入力 8ビット3チャンネル画像.
dst src と同じサイズ,同じタイプの画像を出力します.
templateWindowSize 重みの計算に利用されるテンプレートパッチのサイズ(ピクセル単位).奇数でなければいけません.推奨値 7ピクセル
searchWindowSize 与えられたピクセルの加重平均を計算するためのウィンドウのサイズ(ピクセル単位).奇数にしてください。searchWindowsSizeが大きいほど、ノイズ除去にかかる時間が長くなります。推奨値:21ピクセル
h 輝度成分に対するフィルタの強さを調整するパラメータ.hが大きいと、ノイズは完全に除去されるが、画像のディテールも除去され、hが小さいと、ディテールは維持されるが、ノイズも若干維持される
hColor h と同じですが、色成分に対して使用します。ほとんどの画像では、10に等しい値で、色ノイズを除去し、色を歪ませないのに十分です。

この関数は,画像を CIELAB 色空間に変換した後,fastNlMeansDenoising 関数を用いて,与えられた h パラメータで L 成分と AB 成分を別々にノイズ除去します.

fastNlMeansDenoisingColored() [2/2]

CV_EXPORTS void cv::cuda::fastNlMeansDenoisingColored ( InputArray src,
OutputArray dst,
float h_luminance,
float photo_render,
int search_window = 21,
int block_size = 7,
Stream & stream = Stream::Null()
)

FastNlMeansDenoising 関数を,色付き画像用に変更しました.

引数
src 入力 8ビット3チャンネル画像.
dst src と同じサイズ,同じタイプの画像を出力します.
h_luminance フィルタの強さを調整するパラメータ。h の値が大きいと,ノイズは完全に除去されるが,画像の細部も除去される.h の値が小さいと,細部は維持されるが,ノイズも若干残る
photo_render float h と同じですが,色成分に対するパラメータです.ほとんどの画像では,色ノイズを除去し,かつ色を歪めないようにするには,10に等しい値で十分です.
search_window 与えられたピクセルの加重平均を計算するために利用される窓のサイズを,ピクセル単位で指定します.奇数にしてください。search_windowが大きいほど、ノイズ除去にかかる時間が長くなります。推奨値:21ピクセル
block_size 重みの計算に利用されるテンプレートパッチのサイズ(ピクセル単位).奇数でなければいけません.推奨値 7ピクセル
stream Stream非同期呼び出しでは,この値を推奨します.

この関数は,画像を CIELAB 色空間に変換した後, FastNonLocalMeansDenoising::simpleMethod 関数を用いて,与えられた h パラメータで L 成分と AB 成分を別々にノイズ除去します.

参照
fastNlMeansDenoisingColored

fastNlMeansDenoisingColoredMulti()

CV_EXPORTS_W void cv::fastNlMeansDenoisingColoredMulti ( InputArrayOfArrays srcImgs,
OutputArray dst,
int imgToDenoiseIndex,
int temporalWindowSize,
float h = 3,
float hColor = 3,
int templateWindowSize = 7,
int searchWindowSize = 21
)

FastNlMeansDenoisingMulti 関数の色付き画像シーケンスへの適用

引数
srcImgs 8ビット,3チャンネルの画像列を入力します.すべての画像は,同じ種類とサイズでなければいけません.
imgToDenoiseIndex srcImgs シーケンス中の,ノイズ除去を行う対象画像のインデックス
temporalWindowSize 対象画像のノイズ除去に利用される周辺画像の数.奇数である必要があります.srcImgs の imgToDenoiseIndex - temporalWindowSize / 2 から imgToDenoiseIndex - temporalWindowSize / 2 までの画像が, srcImgs[imgToDenoiseIndex] の画像をノイズ除去するために利用されます.
dst srcImgs の画像と同じサイズ,同じタイプの画像を出力します.
templateWindowSize 重みの計算に利用されるテンプレートパッチのサイズ(ピクセル単位).奇数でなければいけません.推奨値 7ピクセル
searchWindowSize 与えられたピクセルの加重平均を計算するためのウィンドウのサイズ(ピクセル単位).奇数にしてください。searchWindowsSizeが大きいほど、ノイズ除去にかかる時間が長くなります。推奨値:21ピクセル
h 輝度成分に対するフィルタの強さを調整するパラメータ.h の値が大きいと,ノイズは完全に除去されますが,画像の詳細も除去されます.h の値が小さいと,詳細は保持されますが,ノイズも若干保持されます.
hColor 色成分についても h と同様です。

この関数は,画像を CIELAB 色空間に変換した後, fastNlMeansDenoisingMulti 関数を用いて,与えられた h パラメータで L 成分と AB 成分を別々にノイズ除去します.

fastNlMeansDenoisingMulti() [1/2]

CV_EXPORTS_W void cv::fastNlMeansDenoisingMulti ( InputArrayOfArrays srcImgs,
OutputArray dst,
int imgToDenoiseIndex,
int temporalWindowSize,
const std::vector< float > & h,
int templateWindowSize = 7,
int searchWindowSize = 21,
int normType = NORM_L2
)

fastNlMeansDenoisingMulti関数を,短時間に連続して撮影された画像群用に改良したものです.例えば、ビデオなどです。このバージョンの関数は,グレースケール画像や,色空間を利用した手動操作のためのものです.詳細についてはhttp://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394

引数
srcImgs 8ビットまたは16ビット(NORM_L1の場合のみ)の1チャンネル,2チャンネル,3チャンネル,4チャンネルの画像シーケンスを入力します.すべての画像は,同じ種類,同じサイズでなければいけません.
imgToDenoiseIndex srcImgs シーケンス中の,ノイズ除去を行う対象画像のインデックス
temporalWindowSize 対象画像のノイズ除去に利用される周辺画像の数.奇数である必要があります.srcImgs の imgToDenoiseIndex - temporalWindowSize / 2 から imgToDenoiseIndex - temporalWindowSize / 2 までの画像が, srcImgs[imgToDenoiseIndex] の画像をノイズ除去するために利用されます.
dst srcImgs の画像と同じサイズ,同じタイプの画像を出力します.
templateWindowSize 重みの計算に利用されるテンプレートパッチのサイズ(ピクセル単位).奇数でなければいけません.推奨値 7ピクセル
searchWindowSize 与えられたピクセルの加重平均を計算するためのウィンドウのサイズ(ピクセル単位).奇数にしてください。searchWindowsSizeが大きいほど、ノイズ除去にかかる時間が長くなります。推奨値:21ピクセル
h フィルタの強度を調整するパラメータの配列で,1つのパラメータを全チャンネルに適用するか,あるいはdstの各チャンネルに1つずつ適用します.hの値が大きいと、ノイズは完全に除去されるが、画像のディテールも除去される。hの値が小さいと、ディテールは維持されるが、ノイズも若干残る。
normType ウェイト計算に使用するノルムの種類。NORM_L2 または NORM_L1 のいずれかです。

fastNlMeansDenoisingMulti() [2/2]

CV_EXPORTS_W void cv::fastNlMeansDenoisingMulti ( InputArrayOfArrays srcImgs,
OutputArray dst,
int imgToDenoiseIndex,
int temporalWindowSize,
float h = 3,
int templateWindowSize = 7,
int searchWindowSize = 21
)

fastNlMeansDenoisingMulti関数を,短時間に連続して撮影された画像群用に改良したものです.例えば、ビデオなどです。このバージョンの関数は,グレースケール画像や,色空間を利用した手動操作のためのものです.詳細についてはhttp://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394

引数
srcImgs 入力 8 ビットの 1 チャネル,2 チャネル,3 チャネル,4 チャネルの画像列.すべての画像は同じタイプとサイズである必要があります。
imgToDenoiseIndex srcImgs シーケンス中の,ノイズ除去を行う対象画像のインデックス
temporalWindowSize 対象画像のノイズ除去に利用される周辺画像の数.奇数である必要があります.srcImgs の imgToDenoiseIndex - temporalWindowSize / 2 から imgToDenoiseIndex - temporalWindowSize / 2 までの画像が, srcImgs[imgToDenoiseIndex] の画像をノイズ除去するために利用されます.
dst srcImgs の画像と同じサイズ,同じタイプの画像を出力します.
templateWindowSize 重みの計算に利用されるテンプレートパッチのサイズ(ピクセル単位).奇数でなければいけません.推奨値 7ピクセル
searchWindowSize 与えられたピクセルの加重平均を計算するためのウィンドウのサイズ(ピクセル単位).奇数にしてください。searchWindowsSizeが大きいほど、ノイズ除去にかかる時間が長くなります。推奨値:21ピクセル
h フィルタの強さを調整するパラメータです。h値が大きいと,ノイズは完全に除去されますが,画像の細部も除去されます.h値が小さいと,細部は保持されますが,ノイズも若干保持されます.

nonLocalMeans()

CV_EXPORTS void cv::cuda::nonLocalMeans ( InputArray src,
OutputArray dst,
float h,
int search_window = 21,
int block_size = 7,
int borderMode = BORDER_DEFAULT ,
Stream & stream = Stream::Null()
)

単純化されていない純粋な非局所的手段によるノイズ除去を行うため,高速ではありません.

引数
src ソース画像。CV_8UC1, CV_8UC2, CV_8UC3 のみ対応。
dst 出力画像。
h 色に対するフィルタの強さを調整するフィルタシグマ.
search_window 探索窓のサイズ.
block_size 重みの計算に使われるブロックのサイズ.
borderMode 境界線の種類.詳細は borderInterpolate を参照してください.BORDER_REFLECT101 , BORDER_REPLICATE , BORDER_CONSTANT , BORDER_REFLECT , BORDER_WRAP が現在のところサポートされています。
stream Stream非同期版の場合。
参照
fastNlMeansDenoising