何凯明暗通道去雾方法
我的本意是想找一些处理强逆光图像的方法,但是之前的时候发现MSRCR算法效果很好,所以就看看其他的去雾算法有没有用。事实证明没什么卵用,但是读代码的时候浪费我一个下午的时间,本来应该可以在lol杀人的,好气啊。所以就写下来,要不白看了。
原理就不贴了。在网上找到基于python实现的很多都是这一个代码,我比较笨,所以怕忘就注释的比较详细,希望能有些帮助。代码如下。
import cv2
import numpy as np
def zmMinFilterGray(src, r=7):
'''''最小值滤波,r是滤波器半径'''
return cv2.erode(src, np.ones((2 * r - 1, 2 * r - 1)))
# =============================================================================
# if r <= 0:
# return src
# h, w = src.shape[:2]
# I = src
# res = np.minimum(I , I[[0]+range(h-1) , :])
# res = np.minimum(res, I[range(1,h)+[h-1], :])
# I = res
# res = np.minimum(I , I[:, [0]+range(w-1)])
# res = np.minimum(res, I[:, range(1,w)+[w-1]])
# =============================================================================
# return zmMinFilterGray(res, r-1)
def guidedfilter(I, p, r, eps):
'''''引导滤波,直接参考网上的matlab代码'''
height, width