调用的是cv2的addWeighted函数,增雾结果来看效果还蛮不错的
import numpy as np
import cv2 as cv
import os
import random
file = 'C:\\Users\\Ilearn\\Desktop\\new_images\\clear\\'
for file_img in os.listdir(file): # 需要处理的文件夹
img = cv.imread(file + file_img) # 需要处理的文件夹
mask_img = cv.imread(file + file_img) # 需要处理的文件夹
# mask_img=np.zeros((img.shape[1], img.shape[0]), dtype=np.uint8)
# mask_img[:, :] = (144, 128, 112) # 112, 128, 144 RGB
mask_img[:, :] = (166, 178, 180) # 雾的颜色
# cv.imwrite('./rtimg.jpg', mask_img)
# area = [[0, 0], [0, img.shape[0]], [img.shape[1], img.shape[0]], [img.shape[1], 0]]
# mask_img = cv.fillConvexPoly(mask_img, np.array(area, np.int32)[[]], (255, 255, 0))
image = cv.addWeighted(img, round(random.uniform(0.03, 0.28), 2), mask_img, 1, 0) # 里面参数可调,主要调整雾的浓度
#
cv.imwrite('haze\\' + file_img, image) # 保存的文件夹
浓度可以自己调,不同的像素图片对应的浓度区间也有所不同。需要调整下试试看