import os
from PIL import Image
import numpy as np
def haze_removal(image, windowSize=24, w0=0.6, t0=0.1):
darkImage = image.min(axis=2)
maxDarkChannel = darkImage.max()
darkImage = darkImage.astype(np.double)
t = 1 - w0 * (darkImage / maxDarkChannel)
T = t * 255
T.dtype = 'uint8'
t[t < t0] = t0
J = image
J[:, :, 0] = (image[:, :, 0] - (1 - t) * maxDarkChannel) / t
J[:, :, 1] = (image[:, :, 1] - (1 - t) * maxDarkChannel) / t
J[:, :, 2] = (image[:, :, 2] - (1 - t) * maxDarkChannel) / t
result = Image.fromarray(J)
return result
if __name__ == '__main__':
# 源图片文件夹路径
dirname_read = "F:/images1/"
# 新图片文件夹路径
dirname_write = "F:/images2/"
names = os.listdir(dirname_read)
count = 1
for name in names:
image = np.array(Image.open(dirname_read + name))
imageSize = image.shape
result = haze_removal(image)
to_save_path = dirname_write + name
result.save(to_save_path)
print(to_save_path, "------conut:", count)
count += 1
批量去雾的代码
最新推荐文章于 2024-08-08 10:19:28 发布