这是我在网上看到的检测图像清晰度的算法, 有没有知道这是根据什么公式得来的啊
double DefRto(Mat frame)
{
Mat gray;
cvtColor(frame, gray, CV_BGR2GRAY);
IplImage *img = &(IplImage(gray));
double temp = 0;
double DR = 0;
int i, j;//循环变量
int height = img->height;
int width = img->width;
int step = img->widthStep / sizeof(uchar);
uchar *data = (uchar*)img->imageData;
double num = width*height;
for (i = 0; i < height - 1;i++)
{
for (j = 0; j < width;j++)
{
temp += sqrt((pow((double)(data[(i + 1)*step + j] - data[i*step + j]), 2) \
+ pow((double)(data[i*step + j + 1] - data[i*step + j]), 2)));
temp += abs(data[(i + 1)*step + j] - data[i*step + j]) + abs(data[i*step + j + 1] - data[i*step + j]);
}
}
DR = temp / num;
return DR;
}