读取文件夹中图片并对图像的清晰度进行评估
import cv2
import os
class ImageSharpnessScorer:
def __init__(self):
self.scorer = cv2.Laplacian
def score_image_sharpness(self, image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
sharpness_score = self.scorer(gray, cv2.CV_64F).var()
return sharpness_score
def evaluate_images(self, folder_path):
images = []
for filename in os.listdir(folder_path):
if filename.endswith(('.jpg', '.jpeg', '.png')):
image_path = os.path.join(folder_path, filename)
image = cv2.imread(image_path)
if image is not None:
images.append(image)
scores = []
for image in images:
score = self.score_image_sharpness(image)
scores.append(score)
return scores
# 测试用例
def run_image_sharpness_test():
scorer = ImageSharpnessScorer()
# 图片所在的文件夹路径
folder_path = 'data/InitImages'
# 评估图像清晰度并输出结果
scores = scorer.evaluate_images(folder_path)
for i, score in enumerate(scores):
print(f"Image {i+1} sharpness score: {score}")
if __name__ == "__main__":
run_image_sharpness_test()
输出结果: