重磅乾貨,第一時間送達
俗話說,一張圖勝過千言萬語。但是,如果它傳達的內容與我們想看的內容不符怎麼辦?我們確定它應該來自那個影象,但不幸的是它不是很明顯。如果說,有可能從一幅影象中發現我們想要了解的背景,並且很可能在這一過程中獲得一些額外的見解,那會怎麼樣?
這就是我們今天要討論的——影象增強!
影象增強由一組用於細化影象的技術組成。透過這種方式,影象在視覺上更容易被人類感知,這反過來將進一步促進改進的影象處理分析。影象增強處理技術包括:
傅立葉變換
白平衡
直方圖處理
對於這篇文章,討論將圍繞python中用於影象增強的各種白平衡演算法的使用展開。但在此之前,讓我們記錄下基本庫。
白平衡
首先,什麼是白平衡(WB)?這是一個消除不切實際的色偏的色彩校正過程,以便在我們想要的影象中正確呈現白色的物體。我們將實施三種白平衡技術,它們是:
白色補丁演算法
灰度世界演算法
地面真值演算法
為了便於說明,我們將使用下圖:
白色補丁演算法
這種方法是一種典型的顏色恆定性適應方法,它搜尋最亮的色塊以用作白色參考,類似於人類視覺系統的做法。請注意,要在影象中觀察到白色,RGB 顏色空間中的每個通道都應處於最大值。
Python中的程式碼實現:
使用白色補丁演算法增強百合
正如所觀察到的,可以看到影象變得相對更亮,中間的百合花變得非常鮮豔,這就是白色補丁演算法如何增強影象的方式。接下來,讓我們看看下一個演算法。
灰度世界演算法
灰度世界演算法是一種白平衡方法,它假設影象平均為中性灰色。如果影象中的顏色分佈良好,則灰度世界假設成立。考慮到這個假設為真,平均反射顏色被假設為光的顏色。因此,我們可以透過檢視平均顏色並將其與灰色進行比較來估計照明色偏。
Python中的程式碼實現:
使用灰度世界演算法增強百合
如圖,可以看出它與原始影象並沒有太大的偏差,其原因之一可能是平均顏色及其與灰色的比較並不那麼顯著,然後讓我們看看最後一個演算法。
地面真值演算法
到目前為止,我們已經對顏色空間在影象上的表現做了假設。現在,我們將選擇一個補丁(影象的一部分)並使用該補丁重新建立我們想要的影象,而不是對增強影象做出假設。
為該影象選擇的補丁程式如下所示:
補丁(包含在藍色邊框中)
補丁的放大影象
選擇補丁後,我們現在將繼續增強我們的影象。為此,我們可以採用兩種方式:
最大值方法— 將原始影象的每個通道歸一化為該區域每個通道的最大值
平均值在方法— 將原始影象的每個通道歸一化為該區域每個通道的平均值
Python中的程式碼實現:
讓我們看看兩種模式的輸出。
使用最大值方法:
使用地面真值演算法增強影象(最大值模式)
除了生動地強調百合之外,還可以觀察到花朵周圍的浮葉也得到了增強,綠色通道被極大地突出顯示。讓我們看看這與使用均值作為模式有何不同。
使用平均值方法:
使用地面真值演算法增強影象(平均值模式)
輸出稍微接近白色補丁輸出,但後者更亮。它還強調了百合花的顏色,但它沒有突出浮葉的顏色,只是提亮了它。
對於地面真值演算法,輸出影象很大程度上取決於補丁影象的選擇。因此,透過視覺化我們想要獲得什麼樣的增強影象來明智地選擇補丁。
我們現在可以使用 3 種不同的方法來增強影象。
下載1:OpenCV-Contrib擴充套件模組中文版教程
下載2:Python視覺實戰專案52講
下載3:OpenCV實戰專案20講
交流群