ウィキペディアには、標準偏差フィルターに使用できる標準偏差の優れた説明があります。
基本的には、ボックス フィルターで画像をぼかし、ボックス フィルターで画像の 2 乗をぼかし、その差の平方根を取ります。
更新:これは、おそらくウィキペディアの方程式でよりよく示されます...

blur
OpenCV関数は、関心のある近傍の期待値(つまり、E[X] 別名標本平均) を表すものと考えることができます。この場合のランダム サンプル X は、ローカル近傍のイメージ ピクセルによって表されます。sqrt(blur(img^2) - blur(img)^2)
したがって、上記の同等性を使用すると、OpenCVのようなものになります。このようにすると、局所平均と標準偏差を計算できます。
また、数学的な証明に興味がある場合に備えて。この等価性は、分散の計算式として知られています。
OpenCVでこれを行う方法は次のとおりです。
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
Mat mat2gray(const Mat& src)
{
Mat dst;
normalize(src, dst, 0.0, 1.0, NORM_MINMAX);
return dst;
}
int main()
{
Mat image = imread("coke-can.jpg", 0);
Mat image32f;
image.convertTo(image32f, CV_32F);
Mat mu;
blur(image32f, mu, Size(3, 3));
Mat mu2;
blur(image32f.mul(image32f), mu2, Size(3, 3));
Mat sigma;
cv::sqrt(mu2 - mu.mul(mu), sigma);
imshow("coke", mat2gray(image32f));
imshow("mu", mat2gray(mu));
imshow("sigma",mat2gray(sigma));
waitKey();
return 0;
}
これにより、次の画像が生成されます。
オリジナル

平均

標準偏差

それが役立つことを願っています!