1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import os
- from PIL import Image
- def clear_save_image(image_path):
- image = Image.open(image_path)
- image = clear_image(image)
- image = image.convert('L') #灰度处理
- file_name = os.path.splitext(os.path.basename(image_path))[0]
- save_path = os.path.join(os.path.dirname(image_path), '../clear_image', file_name + '.jpg')
- image.save(save_path) #图片转换成tif保存到clear_image文件夹中
- def clear_image(image):
- image = image.convert('RGB')
- width = image.size[0]
- height = image.size[1]
- noise_color = get_noise_color(image)
- for x in range(width):
- for y in range(height):
- #清除边框和干扰色
- if (x == 0 or y == 0 or x == width - 1 or y == height - 1
- or image.getpixel((x, y)) == noise_color):
- image.putpixel((x, y), (255, 255, 255))
- #背景调整为白色
- if (image.getpixel((x, y))[0] > 180 and image.getpixel((x, y))[1] > 180 and image.getpixel((x, y))[2] > 180):
- image.putpixel((x, y), (255, 255, 255))
- return image
- def get_noise_color(image):
- for y in range(1, image.size[1] - 1):
- # 获取第2列非白的颜色
- (r, g, b) = image.getpixel((2, y))
- if r < 255 and g < 255 and b < 255:
- return (r, g, b)
- if __name__ == '__main__':
- os.makedirs('./clear_image/', exist_ok=True)
- for file_path in os.listdir('image'):
- file_path = os.path.join('image', file_path)
- if os.path.isfile(file_path):
- clear_save_image(file_path)
- print("clear end.")
|