久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

python實現(xiàn)暗通道去霧算法的示例

瀏覽:4日期:2022-07-09 17:40:03

何凱明博士的去霧文章和算法實現(xiàn)已經漫天飛了,我今天也就不????簦?苯癰?鱟約?ython實現(xiàn)的完整版本,全部才60多行代碼,簡單易懂,并有簡要注釋,去霧效果也很不錯。

在這個python版本中,計算量最大的就是最小值濾波,純python寫的,慢,可以進一步使用C優(yōu)化,其他部分都是使用numpy和opencv的現(xiàn)成東東,效率還行。

import cv2import numpy as np def zmMinFilterGray(src, r=7): ’’’最小值濾波,r是濾波器半徑’’’ ’’’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)’’’ return cv2.erode(src, np.ones((2*r+1, 2*r+1))) #使用opencv的erode函數(shù)更高效def guidedfilter(I, p, r, eps): ’’’引導濾波,直接參考網上的matlab代碼’’’ height, width = I.shape m_I = cv2.boxFilter(I, -1, (r,r)) m_p = cv2.boxFilter(p, -1, (r,r)) m_Ip = cv2.boxFilter(I*p, -1, (r,r)) cov_Ip = m_Ip-m_I*m_p m_II = cv2.boxFilter(I*I, -1, (r,r)) var_I = m_II-m_I*m_I a = cov_Ip/(var_I+eps) b = m_p-a*m_I m_a = cv2.boxFilter(a, -1, (r,r)) m_b = cv2.boxFilter(b, -1, (r,r)) return m_a*I+m_b def getV1(m, r, eps, w, maxV1): #輸入rgb圖像,值范圍[0,1] ’’’計算大氣遮罩圖像V1和光照值A, V1 = 1-t/A’’’ V1 = np.min(m,2) #得到暗通道圖像 V1 = guidedfilter(V1, zmMinFilterGray(V1,7), r, eps) #使用引導濾波優(yōu)化 bins = 2000 ht = np.histogram(V1, bins) #計算大氣光照A d = np.cumsum(ht[0])/float(V1.size) for lmax in range(bins-1, 0, -1): if d[lmax]<=0.999: break A = np.mean(m,2)[V1>=ht[1][lmax]].max() V1 = np.minimum(V1*w, maxV1) #對值范圍進行限制 return V1,A def deHaze(m, r=81, eps=0.001, w=0.95, maxV1=0.80, bGamma=False): Y = np.zeros(m.shape) V1,A = getV1(m, r, eps, w, maxV1)#得到遮罩圖像和大氣光照 for k in range(3): Y[:,:,k] = (m[:,:,k]-V1)/(1-V1/A) #顏色校正 Y = np.clip(Y, 0, 1) if bGamma: Y = Y**(np.log(0.5)/np.log(Y.mean())) #gamma校正,默認不進行該操作 return Y if __name__ == ’__main__’: m = deHaze(cv2.imread(’land.jpg’)/255.0)*255 cv2.imwrite(’defog.jpg’, m)

下面給兩個運行效果吧

python實現(xiàn)暗通道去霧算法的示例

python實現(xiàn)暗通道去霧算法的示例

python實現(xiàn)暗通道去霧算法的示例

python實現(xiàn)暗通道去霧算法的示例

以上就是python實現(xiàn)暗通道去霧算法的示例的詳細內容,更多關于python實現(xiàn)暗通道去霧算法的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 建平县| 赫章县| 铅山县| 义马市| 徐汇区| 宁乡县| 肥城市| 四川省| 永福县| 冷水江市| 泰顺县| 漳平市| 宣化县| 海晏县| 九江市| 河北区| 舞钢市| 疏附县| 益阳市| 五寨县| 平昌县| 阿克苏市| 郴州市| 永州市| 榆林市| 诏安县| 怀仁县| 宜城市| 若尔盖县| 康保县| 鹿泉市| 浦东新区| 江山市| 五河县| 隆化县| 疏附县| 曲阜市| 南昌县| 泾阳县| 和平县| 兴和县|