OPENCV学習でのラプラシアン演算子の使用



Use Laplacian Operator Opencv Learning



効果画像:

画像
概念:



ラプラス演算子に関連する理論と概念の説明
C ++:void Laplacian(InputArray src、OutputArray dst、int ddepth、int ksize = 1、double scale = 1、double delta = 0、intborderType = BORDER_DEFAULT)
最初のパラメータであるinputArrayタイプの画像、入力画像、つまりソース画像は、Matクラスオブジェクトを埋めるだけであり、単一チャネルの8ビット画像である必要があります。
2番目のパラメーターであるoutputArrayタイプのエッジである出力エッジマップは、ソースイメージと同じサイズとチャネル番号である必要があります。
3番目のパラメーターinttype ddeptは、ターゲット画像の深さです。
4番目のパラメーターであるint型ksizeは、2次導関数のフィルターのアパーチャサイズを計算するために使用されます。サイズは正の奇数で、デフォルト値は1である必要があります。
5番目のパラメーターであるダブルタイプのスケール(ラプラシアン値を計算するときのオプションのスケール係数)のデフォルト値は1です。
6番目のパラメーターであるdoubleタイプのデルタは、結果がターゲットイメージに格納される前のオプションのデルタ値(2番目のパラメーターdst)を示し、デフォルト値は0です。
7番目のパラメーターであるint型のborderType、border mode、デフォルト値はBORDER_DEFAULTです。このパラメーターは、borderInterpolate()の公式ドキュメントから詳細に入手できます。
Laplacian()関数は、主にsobel演算子の操作に基づいています。ソーベル演算子によって計算された画像のx方向とy方向の導関数を加算して、ロードした画像のラプラス変換結果を取得します。

int main() { Mat src = imread('2.jpg') imshow('Original', src) Mat dst, abs_dst,gray //Use Gaussian filtering to eliminate noise, if not used, the effect picture is at the end GaussianBlur(src, src, Size(3, 3), 0, 0, BORDER_DEFAULT) //Convert to grayscale image cvtColor(src, gray, COLOR_BGR2GRAY) //Use Laplace function Laplacian(gray, dst, CV_16S, 3, 1, 0, BORDER_DEFAULT) //Calculate the absolute value and convert the result into 8 digits convertScaleAbs(dst, abs_dst) imshow('Laplacian', abs_dst) waitKey(0) return(0) }

画像