C++ 不同相机拍摄的图像中的模糊检测
我想用拉普拉斯算子检测模糊图像。这是我正在使用的代码:C++ 不同相机拍摄的图像中的模糊检测,c++,opencv,image-processing,C++,Opencv,Image Processing,我想用拉普拉斯算子检测模糊图像。这是我正在使用的代码: bool checkforblur(Mat img) { bool is_blur = 0; Mat gray,laplacianImage; Scalar mean, stddev, mean1, stddev1; double variance1,variance2,threshold; cvtColor(img, gray, CV_BGR2GRAY); Laplacian(gray,
bool checkforblur(Mat img)
{
bool is_blur = 0;
Mat gray,laplacianImage;
Scalar mean, stddev, mean1, stddev1;
double variance1,variance2,threshold;
cvtColor(img, gray, CV_BGR2GRAY);
Laplacian(gray, laplacianImage, CV_64F);
meanStdDev(laplacianImage, mean, stddev, Mat());
meanStdDev(gray, mean1, stddev1, Mat());
variance1 = stddev.val[0]*stddev.val[0];
variance2 = stddev1.val[0]*stddev1.val[0];
double ratio= variance1/variance2;
threshold = 90;
cout<<"Variance is:"<<ratio<<"\n"<<"Threshold Used:"
<<threshold<<endl;
if (ratio <= threshold){is_blur=1;}
return is_blur;
}
bool checkforblur(Mat img)
{
布尔是_blur=0;
垫灰色,拉普拉斯图像;
标量平均值,stddev,means1,stddev1;
双变量1,变量2,阈值;
CVT颜色(img、灰色、CV_bgr2灰色);
拉普拉斯(灰色,拉普拉斯图像,CV_64F);
meanstdev(拉普拉斯图像,平均值,stddev,Mat());
meanstdev(灰色,means1,stddev1,Mat());
方差1=stddev.val[0]*stddev.val[0];
方差2=stddev1.val[0]*stddev1.val[0];
双重比率=差异1/差异2;
阈值=90;
cout拉普拉斯算子是线性的,因此其振幅随信号振幅的变化而变化。因此,对比度越强的图像响应越高
通过规范化值,您可能会有更好的行为,例如,使用拉普拉斯函数的方差与信号本身的方差之比,或者与梯度幅值的方差之比
我还建议你尝试使用锐利的图像,你逐渐模糊与更广泛的高斯,并看看情节的“测量模糊”与已知的模糊度相比。拉普拉斯算子是线性的,因此其振幅随信号的振幅而变化。因此,对比度较强的图像的响应会更高
通过规范化值,您可能会有更好的行为,例如,使用拉普拉斯函数的方差与信号本身的方差之比,或者与梯度幅值的方差之比
我还建议你尝试使用锐利的图像,你逐渐模糊与更广泛的高斯,并看看情节的“测量模糊”与已知的模糊度相比。如上所述,你应该将这个比率标准化。基本上,如果你将方差除以平均值,你将得到标准化的灰度方差,我认为这就是你要寻找的
这就是说,我推荐一个非常好的线程,里面有很多好的信息和代码示例。如上所述,你应该将这个比率标准化。基本上,如果你将方差除以平均值,你将得到标准化的灰度方差,我想这就是你想要的
也就是说,我会推荐一个非常好的帖子,里面有很多很好的信息和代码示例。如果你尝试了这个,请告诉我们结果。谢谢你的时间。我已经编辑了这个问题。这就是你的建议吗?@janu777:yep。我没有注意到你在计算STDEV然后转换为方差。我想使用StdDev甚至更好。但是在设置固定阈值之前,请查看不同图像和不同模糊级别的值。因此,您建议我使用StdDev本身,而不是方差。对吗?@janu777:yep,这会使比例更线性(但这不是必要的)。如果您尝试此操作,请让我们知道结果。谢谢您的时间。我已编辑了此问题。这是您的建议吗?@janu777:是的。我不介意您计算StdDev然后转换为方差。我认为使用StdDev更好。但在设置固定阈值之前,请查看不同阈值的值图像和不同程度的模糊。因此,你建议我使用stdDev本身而不是方差。对吗?@janu777:是的,这使比例更线性(但这不是必要的)。