1.图片批量归一化
import numpy as np
import cv2
import os
import SimpleITK as sitk
from PIL import Image
# 原文件夹下的所有图片
file_root = r'F:\mydata_YJN\Data\FEN JI\fenji_yuantu\yantu_val\level_4'
file_list = os.listdir(file_root)
# print(file_list)
# 保存图片的文件夹名称
save_out = r"F:\mydata_YJN\Data\FEN JI\fenji_yuantu\guiyi_val\LV4"
def normalize(arr):
"""
Linear normalization
http://en.wikipedia.org/wiki/Normalization_%28image_processing%29
"""
arr = arr.astype('float')
# Do not touch the alpha channel
for i in range(3):
minval = arr[..., i].min()
maxval = arr[..., i].max()
if minval != maxval:
arr[..., i] -= minval
arr[..., i] *= (255.0 / (maxval - minval))
return arr
def demo_normalize(img_path,save_path):
img = Image.open(img_path).convert('RGB')
arr = np.array(img)
new_img = Image.fromarray(normalize(arr).astype('uint8'), 'RGB')
new_img.save(save_path)
for img_name in file_list:
# print(img_name)
if img_name.endswith('.jpg'):
# print(img_name)
# print("+++++++++++++++")
img_path = os.path.join(file_root , img_name)
save_path = os.path.join(save_out, img_name)
print(img_path)
print(save_path)
# img = cv2.imread(img_path, 0)
# # create a CLAHE object
# clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
# cl1 = clahe.apply(img)
# cv2.imshow('cl1.jpg', cl1)
# cv2.waitKey(0)
# cv2.imwrite(save_path, cl1)
demo_normalize(img_path,save_path)