白平衡——影象處理中的一種增強技術

重磅乾貨,第一時間送達

白平衡——影象處理中的一種增強技術

俗話說,一張圖勝過千言萬語。但是,如果它傳達的內容與我們想看的內容不符怎麼辦?我們確定它應該來自那個影象,但不幸的是它不是很明顯。如果說,有可能從一幅影象中發現我們想要了解的背景,並且很可能在這一過程中獲得一些額外的見解,那會怎麼樣?

這就是我們今天要討論的——影象增強!

影象增強由一組用於細化影象的技術組成。透過這種方式,影象在視覺上更容易被人類感知,這反過來將進一步促進改進的影象處理分析。影象增強處理技術包括:

傅立葉變換

白平衡

直方圖處理

對於這篇文章,討論將圍繞python中用於影象增強的各種白平衡演算法的使用展開。但在此之前,讓我們記錄下基本庫。

白平衡

首先,什麼是白平衡(WB)?這是一個消除不切實際的色偏的色彩校正過程,以便在我們想要的影象中正確呈現白色的物體。我們將實施三種白平衡技術,它們是:

白色補丁演算法

灰度世界演算法

地面真值演算法

為了便於說明,我們將使用下圖:

白平衡——影象處理中的一種增強技術

白色補丁演算法

這種方法是一種典型的顏色恆定性適應方法,它搜尋最亮的色塊以用作白色參考,類似於人類視覺系統的做法。請注意,要在影象中觀察到白色,RGB 顏色空間中的每個通道都應處於最大值。

Python中的程式碼實現:

使用白色補丁演算法增強百合

正如所觀察到的,可以看到影象變得相對更亮,中間的百合花變得非常鮮豔,這就是白色補丁演算法如何增強影象的方式。接下來,讓我們看看下一個演算法。

灰度世界演算法

灰度世界演算法是一種白平衡方法,它假設影象平均為中性灰色。如果影象中的顏色分佈良好,則灰度世界假設成立。考慮到這個假設為真,平均反射顏色被假設為光的顏色。因此,我們可以透過檢視平均顏色並將其與灰色進行比較來估計照明色偏。

Python中的程式碼實現:

白平衡——影象處理中的一種增強技術

使用灰度世界演算法增強百合

如圖,可以看出它與原始影象並沒有太大的偏差,其原因之一可能是平均顏色及其與灰色的比較並不那麼顯著,然後讓我們看看最後一個演算法。

地面真值演算法

到目前為止,我們已經對顏色空間在影象上的表現做了假設。現在,我們將選擇一個補丁(影象的一部分)並使用該補丁重新建立我們想要的影象,而不是對增強影象做出假設。

為該影象選擇的補丁程式如下所示:

白平衡——影象處理中的一種增強技術

補丁(包含在藍色邊框中)

白平衡——影象處理中的一種增強技術

補丁的放大影象

選擇補丁後,我們現在將繼續增強我們的影象。為此,我們可以採用兩種方式:

最大值方法— 將原始影象的每個通道歸一化為該區域每個通道的最大值

平均值在方法— 將原始影象的每個通道歸一化為該區域每個通道的平均值

Python中的程式碼實現:

讓我們看看兩種模式的輸出。

使用最大值方法:

白平衡——影象處理中的一種增強技術

使用地面真值演算法增強影象(最大值模式)

除了生動地強調百合之外,還可以觀察到花朵周圍的浮葉也得到了增強,綠色通道被極大地突出顯示。讓我們看看這與使用均值作為模式有何不同。

使用平均值方法:

使用地面真值演算法增強影象(平均值模式)

輸出稍微接近白色補丁輸出,但後者更亮。它還強調了百合花的顏色,但它沒有突出浮葉的顏色,只是提亮了它。

對於地面真值演算法,輸出影象很大程度上取決於補丁影象的選擇。因此,透過視覺化我們想要獲得什麼樣的增強影象來明智地選擇補丁。

白平衡——影象處理中的一種增強技術

我們現在可以使用 3 種不同的方法來增強影象。

下載1:OpenCV-Contrib擴充套件模組中文版教程

下載2:Python視覺實戰專案52講

下載3:OpenCV實戰專案20講

交流群