python 读取图片 图片预处理 二值化
需求:
毕设项目,需要从文件夹中批量读取文件,并将图片二值化处理。
def preprocessing_image(directory_in_name,directory_out_name):
# 准备储存之后的图片列表
array_of_img = []
# 文件读取 directory_in_name 是文件夹名 filename 是单独每个文件名
for filename in os.listdir(r"./"+directory_in_name):
img = Image.open(directory_in_name+"/"+filename)
array_of_img.append(img)
#遍历图片列表
for img in array_of_img:
#更改图像size
newsize = (300, 300)
#thumbnail是成比例改变size 也可以用resize
img.thumbnail(newsize)
# 模式L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。
Img = img.convert('L')
# 自定义灰度界限,大于这个值为黑色,小于这个值为白色
threshold = 120
#将图片二值化
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
# 图片二值化
photo = Img.point(table, '1')
#图片存储
photo.save(directory_out_name+"/"+filename)
原图:
处理后的图: