计算图像的方差
Compute variance of image
我想在不使用 opencv 的情况下计算图像的拉普拉斯方差,因为 opencv 非常庞大。所以,我想使用任何其他更小的库。
这是我当前的代码。它工作完美,但使用 opencv-python-headless:
import cv2
image = cv2.imread("images/test.png")
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
laplacian = cv2.Laplacian(image_gray, cv2.CV_64F).var()
print(laplacian)
如何使用任何其他尺寸较小的 library/libraries 获得相同的结果(相同的拉普拉斯值)?
您首先需要将图像与拉普拉斯核进行卷积:
为此,您可以使用任何可以将图像加载到二维数组中的库。
Python "Pillow"-library 可能会有用。
然后你只需要计算图像的方差。
这已在这里得到回答:
).
您可以考虑使用 scipy instead with its laplacian function。
from scipy import ndimage #To compute the laplacian
import imageio #To load the image as a numpy array
import numpy as np #To convert it to gray
#A function to convert your rgb image to gray
convert_to_gray = lambda rgb : np.dot(rgb[... , :3] , [0.299 , 0.587, 0.114])
image = imageio.imread("images/test.png")
image_gray = convert_to_gray(image)
laplacian = ndimage.laplace(image_gray).var()
print(laplacian)
我想在不使用 opencv 的情况下计算图像的拉普拉斯方差,因为 opencv 非常庞大。所以,我想使用任何其他更小的库。
这是我当前的代码。它工作完美,但使用 opencv-python-headless:
import cv2
image = cv2.imread("images/test.png")
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
laplacian = cv2.Laplacian(image_gray, cv2.CV_64F).var()
print(laplacian)
如何使用任何其他尺寸较小的 library/libraries 获得相同的结果(相同的拉普拉斯值)?
您首先需要将图像与拉普拉斯核进行卷积:
为此,您可以使用任何可以将图像加载到二维数组中的库。 Python "Pillow"-library 可能会有用。 然后你只需要计算图像的方差。 这已在这里得到回答: ).
您可以考虑使用 scipy instead with its laplacian function。
from scipy import ndimage #To compute the laplacian
import imageio #To load the image as a numpy array
import numpy as np #To convert it to gray
#A function to convert your rgb image to gray
convert_to_gray = lambda rgb : np.dot(rgb[... , :3] , [0.299 , 0.587, 0.114])
image = imageio.imread("images/test.png")
image_gray = convert_to_gray(image)
laplacian = ndimage.laplace(image_gray).var()
print(laplacian)