使用opencv识别png格式图像的质量

Identifying the quality of an png format image with opencv

我需要根据质量分离图像。使用 OpenCV 获得图像质量的最佳方法是什么? 我知道 image.shape 给出了图像的高度和宽度,但在某些情况下,对于低质量图像,我们可以更改高度和宽度。 所以高度和宽度不能像我想的那样给出图像的质量。

图像的一个有用品质是它清晰而不模糊。确定这一点的一种简单方法是测量梯度的量。梯度中的能量多意味着边缘锐利,能量低意味着边缘模糊。

我在对此 的其中一个答案中进行了解释。问题。

使用 python opencv 它将是这样的:

    import cv2 as cv
    import numpy as np

    img = cv.imread('dave.jpg',0)
    laplacian = cv.Laplacian(img,cv.CV_64F)
    gnorm = np.sqrt(laplacian**2)
    sharpness = np.average(gnorm)