2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
OpenCVでfilter2D
この関数は、画像を畳み込み、さまざまな線形フィルターを適用するための非常に強力なツールです。この関数は、画像内の各ピクセルを処理し、指定された畳み込みカーネル (またはフィルター) で画像を畳み込むことによって画像の特性を変更します。以下についてですfilter2D
機能の詳細な紹介:
OpenCVでは、filter2D
関数のプロトタイプは次のとおりです。
void cv::filter2D(InputArray src, OutputArray dst, int ddepth, InputArray kernel,
Point anchor = Point(-1,-1), double delta = 0,
int borderType = BORDER_DEFAULT);
src
サイズとチャンネル数が同じであること。dst
フィルタリングされたピクセルに以前に追加されたもの。BORDER_CONSTANT
、BORDER_REPLICATE
、BORDER_REFLECT
待って。filter2D
この関数は実際に畳み込み演算を実行します (ただし、カーネルの反転が含まれないため、技術的には厳密な畳み込みではなく相関を計算します)。畳み込み演算には、入力画像上で畳み込みカーネルを「スライド」させ、畳み込みカーネルと同じサイズの各部分行列の対応する要素を乗算し、その結果を加算することが含まれます。このプロセスでは、出力イメージ内の対応する位置に配置される新しいピクセル値が生成されます。コンボリューション カーネルが入力画像全体をスライドしながら、完全な出力画像が生成されるまでこのプロセスが繰り返されます。
コンボリューションカーネルを変更することで、filter2D
関数は、次のようなさまざまな画像処理効果を実現できますが、これらに限定されません。
filter2D
関数自体はガウス カーネルの生成を直接提供しませんが、渡すことができます。getGaussianKernel
関数はガウス カーネルを生成し、filter2D
ガウスフィルタリングを実行します。以下は用途ですfilter2D
関数平均フィルタリングのコード例 (Python バージョン):
#include