有没有办法找出图像是否模糊或使用拉普拉斯算子

时间:2016-03-03 09:42:34

标签: c++ opencv edge-detection

我正在研究这个项目,我必须自动进行相机拍摄图像的清晰度计算而不实际查看图像。我已经尝试了很多检测方法,但最后我使用openCV进一步研究拉普拉斯算子。

现在,openCV中的laplacian运算符返回图像矩阵。但是,我必须获得布尔输出,无论图像是否模糊,取决于我的阈值。

任何链接,算法或IEEE论文都会有所帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

你会发现很多信息here

另外,在其中一个答案中引用的论文非常有趣:Analysis of focus measure operators for shape from focus

答案 1 :(得分:1)

请参阅此https://stackoverflow.com/a/44579247/6302996

Laplacian(gray, laplacianImage, CV_64F);
Scalar mean, stddev; // 0:1st channel, 1:2nd channel and 2:3rd channel
meanStdDev(laplacianImage, mean, stddev, Mat());
double variance = stddev.val[0] * stddev.val[0];

double threshold = 2900;

if (variance <= threshold) {
    // Blurry
} else {
    // Not blurry
}