2013年2月12日火曜日

OpenCVで平均2乗誤差を計算する


OpenCVで画像処理を行った結果、平均2乗誤差(Mean Square Error)を計算したい場合がある。

愚直に一画素ごとに計算していたが、OpenCV 2 プログラミングブック p194に簡単に計算するコードが記載さている

 cv::Mat gray1 , gray2;

gray1.convertTo(gray16s1, CV_16S);
gray2.convertTo(gray16s2, CV_16S);

gray16s1 -= gray16s2;
cv::Scalar s = sum(gray16s1.mul(gray16s1));
double mse = s[0] / gray16s1.rows / gray16s1.cols;


蛇足
CV のMSE は Microsoft Security Essentials ではない

0 件のコメント:

コメントを投稿