標籤:

Python+OpenCV實現簡單偽HDR

一切都源於今天一早,隨手照的一張照片:

原始照片(早上光線很暗,手機的HDR簡直是擺設。。)

然後腦洞大開,想用代碼來改善這張照片:

先將圖片用OpenCV載入進去:

先看看直接用Adaptive Histogram Equalization處理之後的結果:

Adaptive Histogram Equalization處理後噪點很多,而且天空的顏色也改變了,不好看了。。。

為了不改變天空原有的質感,我先用Otsu演算法來分割出陰暗部分,得到一個遮罩(mask):

然後通過這個遮罩,分離開天空和陰暗的部分:

上圖是去除掉陰暗部分的圖片,下圖是去掉天空的圖片

接下來用把三個顏色通道(RGB)分離開,分別用高斯filter過濾(是個下策:模糊圖片,實現降噪效果);然後再分別用Adaptive Histogram Equalization處理;最後再降一次噪:

Finally,將天空和處理過的前景圖合成(簡單的加法運算):

當然和真正的HDR沒法比,但畢竟方法簡單,僅供娛樂:)


推薦閱讀:

TAG:OpenCV | Python | HDR |