commit 09bae3685499fcfeb09d12982e25571772fc1e88 Author: pmn Date: Sun May 11 17:23:03 2025 +0800 first commit diff --git a/datasets/source/2/001.jfif b/datasets/source/2/001.jfif new file mode 100644 index 0000000..334a03c Binary files /dev/null and b/datasets/source/2/001.jfif differ diff --git a/datasets/source/2/002.png b/datasets/source/2/002.png new file mode 100644 index 0000000..20669eb Binary files /dev/null and b/datasets/source/2/002.png differ diff --git a/datasets/source/2/003.jpg b/datasets/source/2/003.jpg new file mode 100644 index 0000000..76365e6 Binary files /dev/null and b/datasets/source/2/003.jpg differ diff --git a/datasets/source/2/004.jfif b/datasets/source/2/004.jfif new file mode 100644 index 0000000..8f5bc35 Binary files /dev/null and b/datasets/source/2/004.jfif differ diff --git a/datasets/source/2/005.jfif b/datasets/source/2/005.jfif new file mode 100644 index 0000000..f30b93e Binary files /dev/null and b/datasets/source/2/005.jfif differ diff --git a/datasets/source/2/006.jfif b/datasets/source/2/006.jfif new file mode 100644 index 0000000..c333bdc Binary files /dev/null and b/datasets/source/2/006.jfif differ diff --git a/datasets/source/2/007.png b/datasets/source/2/007.png new file mode 100644 index 0000000..7f43b3d Binary files /dev/null and b/datasets/source/2/007.png differ diff --git a/datasets/source/2/008.jfif b/datasets/source/2/008.jfif new file mode 100644 index 0000000..76690c2 Binary files /dev/null and b/datasets/source/2/008.jfif differ diff --git a/datasets/source/2/009.jfif b/datasets/source/2/009.jfif new file mode 100644 index 0000000..17af1ac Binary files /dev/null and b/datasets/source/2/009.jfif differ diff --git a/datasets/source/2/010.jfif b/datasets/source/2/010.jfif new file mode 100644 index 0000000..2cb2659 Binary files /dev/null and b/datasets/source/2/010.jfif differ diff --git a/datasets/target/2/001.png b/datasets/target/2/001.png new file mode 100644 index 0000000..c70fe8f Binary files /dev/null and b/datasets/target/2/001.png differ diff --git a/datasets/target/2/002.png b/datasets/target/2/002.png new file mode 100644 index 0000000..342f2ac Binary files /dev/null and b/datasets/target/2/002.png differ diff --git a/datasets/target/2/003.png b/datasets/target/2/003.png new file mode 100644 index 0000000..f8df00f Binary files /dev/null and b/datasets/target/2/003.png differ diff --git a/datasets/target/2/004.png b/datasets/target/2/004.png new file mode 100644 index 0000000..5582de1 Binary files /dev/null and b/datasets/target/2/004.png differ diff --git a/datasets/target/2/005.png b/datasets/target/2/005.png new file mode 100644 index 0000000..59a3096 Binary files /dev/null and b/datasets/target/2/005.png differ diff --git a/datasets/target/2/006.png b/datasets/target/2/006.png new file mode 100644 index 0000000..19d0dd1 Binary files /dev/null and b/datasets/target/2/006.png differ diff --git a/datasets/target/2/007.png b/datasets/target/2/007.png new file mode 100644 index 0000000..23da6e6 Binary files /dev/null and b/datasets/target/2/007.png differ diff --git a/datasets/target/2/008.png b/datasets/target/2/008.png new file mode 100644 index 0000000..07e7dcd Binary files /dev/null and b/datasets/target/2/008.png differ diff --git a/datasets/target/2/009.png b/datasets/target/2/009.png new file mode 100644 index 0000000..e1ceb8a Binary files /dev/null and b/datasets/target/2/009.png differ diff --git a/datasets/target/2/010.png b/datasets/target/2/010.png new file mode 100644 index 0000000..1acb955 Binary files /dev/null and b/datasets/target/2/010.png differ diff --git a/image_qualified.py b/image_qualified.py new file mode 100644 index 0000000..b624558 --- /dev/null +++ b/image_qualified.py @@ -0,0 +1,63 @@ +import cv2 +from PIL import Image +import numpy as np +import os + + +def calculate_clarity_score(image_path): + """ + 计算图片的清晰度评分 + """ + image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) + if image is None: + raise ValueError(f"无法读取图片:{image_path}") + return cv2.Laplacian(image, cv2.CV_64F).var() + + +def process_images(input_folder, output_folder,clarity_score_threshold): + if not os.path.exists(input_folder): + print(f"输入文件夹不存在:{input_folder}") + return + + for root, dirs, files in os.walk(input_folder): + print(f'——————正在处理文件夹:{root}, 图片数量:{len(files)}——————') + i = 0 + for filename in files: + if not filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif', '.jfif')): + continue + file_path = os.path.join(root, filename) + # print(f'file_path is {file_path}') + i+=1 + try: + # 清晰度检测 + clarity_score = calculate_clarity_score(file_path) + if clarity_score > clarity_score_threshold: + # 读取图片 + with Image.open(file_path) as img: + # resize + img = img.resize((512, 512)) + + # output_subfolder + relative_path = os.path.relpath(root, input_folder) + output_subfolder = os.path.join(output_folder, relative_path) + # print(f'root: {root}, input_folder: {input_folder}, relative_path: {relative_path}, output_subfolder: {output_subfolder}') + + + if not os.path.exists(output_subfolder): + os.makedirs(output_subfolder) + output_path = os.path.join(output_subfolder, os.path.splitext(filename)[0] + ".png") + img.save(output_path, format="PNG") + print(f"处理并保存图片{i}:{file_path} -> {output_path}") + else: + print(f"********图片 {file_path} 清晰度评分 {clarity_score} 不满足要求,跳过********") + except Exception as e: + print(f"********处理图片 {file_path} 时出错:{e}********") + + +if __name__ == "__main__": + input_folder = 'PMN_WS/data_process/datasets/source' # 输入文件夹路径 + output_folder = 'PMN_WS/data_process/datasets/target' # 输出文件夹路径 + clarity_score_threshold =50 + process_images(input_folder, output_folder,clarity_score_threshold) + + \ No newline at end of file