影象模糊度判斷方法--相機對焦使用
阿新 • • 發佈:2019-01-28
在時域中,主要思路是考察影象的領域對比度,即相鄰畫素間的灰度特徵的梯度差,梯度函式常被用來提取邊緣資訊,聚焦良好的影象,具有更尖銳的邊緣,應有更大的梯度函式值。
在頻域中,主要思路是考察影象的頻率分量,對焦清晰的影象高頻分量較多,對焦模糊的影象低頻分量較多。通過dct比較。Dct分離出的低頻訊號比較,模糊圖片細節少,所以dct更低。
sobel 梯度與拉普拉斯梯度
#include <highgui/highgui.hpp>
#include <imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat imageSource = imread("2.jpg");
Mat imageGrey;
cvtColor(imageSource, imageGrey, CV_RGB2GRAY);
Mat imageSobel;
Sobel(imageGrey, imageSobel, CV_16U, 1, 1); // sobel 梯度
// Laplacian(imageGrey, imageSobel, CV_16U); 拉普拉斯梯度
//影象的平均灰度
double meanValue = 0.0;
meanValue = mean(imageSobel)[0];
}
影象方差
#include <highgui/highgui.hpp>
#include <imgproc/imgproc.hpp>
using namespace cv;
int main()
{
Mat imageSource = imread("2.jpg");
Mat imageGrey;
cvtColor(imageSource, imageGrey, CV_RGB2GRAY);
Mat meanValueImage; //均值
Mat meanStdValueImage; //標準差
//求灰度影象的標準差
meanStdDev(imageGrey, meanValueImage, meanStdValueImage);
double meanValue = 0.0;
meanValue = meanStdValueImage.at<double>(0, 0);
waitKey();
}