天天看點

對欠曝光圖檔的處理

看到一篇寫使用樹莓派做延時攝影的文章,感覺十分的有意思,不過最吸引我的是其中使用的對欠曝光圖檔的處理方法

=======================================

使用的方法:

對欠曝光圖檔的處理
對欠曝光圖檔的處理

(前情:原作者将一天24小時拍攝的照片的時間以數字來命名,數字越小則拍攝的時間越早,數字越大則拍攝的時間越晚,最小的是數字代表淩晨,最大的數字代表深夜,可以知道最小和最大數字的照片一樣屬于嚴重欠曝光的圖檔。)

拍攝時間小于510,大于1900的都屬于嚴重欠曝光的;拍攝時間大于510小于1330的都屬于正常曝光的;拍攝時間大于1330小于1900的屬于一般欠曝光的。

可以看到作者對欠曝光的圖檔分了兩類,一種特别早和特别晚的時間拍攝的照片,屬于嚴重欠曝光的;一種是下午拍攝的照片,屬于一般欠曝光的。

對于一般欠曝光的,先試用gamma變換,然後再使用NORM_MINMAX歸一化:

代碼:

def afternoon(img, gamma = 0.65):
    gamma_table=[np.power(x/255.0,gamma)*255.0 for x in range(256)]
    gamma_table=np.round(np.array(gamma_table)).astype(np.uint8)
    img = cv2.LUT(img,gamma_table)
    img = cv2.normalize(img,dst=None,alpha=255,beta=25,norm_type=cv2.NORM_INF)      

對于嚴重欠曝光的,隻使用NORM_MINMAX歸一化:

代碼:

def night(img):
    img = cv2.normalize(img,dst=None,alpha=255,beta=30,norm_type=cv2.NORM_MINMAX)
    return img      

 注意:在對嚴重欠曝光圖檔進行歸一化時像素最低值高于一般欠曝光的圖檔,這裡beta為30,而不是25。

gamma變換可以增加對比度,使圖檔銳化,使用于整張圖檔中雖然普遍亮度較低但是依然有一定明暗區分度的情況。

NORM_MINMAX歸一化是對整張圖檔的亮度進行整體變換的操作,這裡則是整體提升(加亮),在圖檔對比度上提升不大,适用于整張圖檔沒有太大明暗區分度的情況。

======================================

原圖:

對欠曝光圖檔的處理

處理後的:

對欠曝光圖檔的處理

----------------------------------------

原圖:

對欠曝光圖檔的處理

處理後的圖:

對欠曝光圖檔的處理

 -----------------------------------------------

原圖:

對欠曝光圖檔的處理

處理後的:

對欠曝光圖檔的處理

繼續閱讀