通过仿真自动色阶算法,发现其去雾效果十分明显,并且速度快于暗通道算法。
python实现:
#!python3.6
import numpy as np
import cv2
def ComputeHist(img):
h,w = img.shape
hist, bin_edge = np.histogram(img.reshape(1,w*h), bins=list(range(257)))
return hist
def ComputeMinLevel(hist, rate, pnum):
sum = 0
for i in range(256):
sum += hist[i]
if (sum >= (pnum * rate * 0.01)):
return i
def ComputeMaxLevel(hist, rate, pnum):
sum = 0
for i in range(256):
sum += hist[255-i]
if (sum >= (pnum * rate * 0.01)):
return 255-i
def LinearMap(minlevel, maxlevel):
if (minlevel >= maxlevel):
return []
else:
newmap = np.zeros(256)
for i in range(256):
if (i < minlevel):
newmap[i] = 0
elif (i > maxlevel):