12345678910111213141516171819202122232425262728293031323334353637383940 |
- import os
- from PIL import Image
- def convert_images_to_binary(input_folder, output_folder, threshold=128):
- """
- 遍历输入文件夹中的所有图片,将它们转换为二值化图像,并保存到输出文件夹。
- :param input_folder: 输入文件夹路径
- :param output_folder: 输出文件夹路径
- :param threshold: 二值化阈值,默认是128
- """
- # 确保输出文件夹存在
- os.makedirs(output_folder, exist_ok=True)
- # 遍历输入文件夹中的所有文件
- for filename in os.listdir(input_folder):
- # 只处理图片文件
- if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff')):
- input_path = os.path.join(input_folder, filename)
- output_path = os.path.join(output_folder, filename)
- try:
- # 打开单通道灰度图像
- image = Image.open(input_path).convert("L")
- # 应用阈值化
- binary_image = image.point(lambda p: 1 if p > threshold else 0)
- # 保存二值化图像
- binary_image.save(output_path)
- print(f"成功处理: {filename}")
- except Exception as e:
- print(f"处理文件 {filename} 时出错: {e}")
- # 输入和输出文件夹路径
- input_folder = r"E:\road_data\MassRoad_DeepGlobe_CHN6-CUG\seg\train\output1" # 替换为你的输入文件夹路径
- output_folder = r"E:\road_data\MassRoad_DeepGlobe_CHN6-CUG\seg\train\output" # 替换为你的输出文件夹路径
- # 调用函数处理文件夹中的图片
- convert_images_to_binary(input_folder, output_folder, threshold=128)
|