理论
因为清晰聚焦的图像有着比模糊图像更大的灰度差异,可以将方差函数作为评价函数:
其中:
为整幅图像的平均灰度值,该函数对噪声比较敏感,图像画面越纯净,函数值越小。
https://blog.csdn.net/Real_Myth/article/details/50827940
代码
def variance(img):''':param img:narray 二维灰度图像:return: float 图像约清晰越大'''out = 0u = np.mean(img)shape = np.shape(img)for x in range(0,shape[0]):for y in range(0,shape[1]):out+=(img[x,y]-u)**2return out
https://blog.csdn.net/Greepex/article/details/90183018
def _Variance(self, imgName):"""灰度方差乘积:param imgName::return:"""# step 1 图像的预处理img2gray, reImg = self.preImgOps(imgName)f = self._imageToMatrix(img2gray)# strp3: 绘制图片并保存 不应该写在这里 抽象出来 这是共有的部分score = np.var(f)newImg = self._drawImgFonts(reImg, str(score))newDir = self.strDir + "/_Variance_/"if not os.path.exists(newDir):os.makedirs(newDir)newPath = newDir + imgNamecv2.imwrite(newPath, newImg) # 保存图片cv2.imshow(imgName, newImg)cv2.waitKey(0)return score
https://github.com/Leezhen2014/python—/blob/master/BlurDetection.py
