經過灰度線性映射加強圖像對比度

 

Halcon中如何經過灰度線性映射加強圖片對比度呢?不急,我先講點其餘的。函數

 

若是你用過Photoshop,那麼想必對加強圖像的對比度很熟悉。在Photoshop中,咱們對下面這張圖執行「色階」調整:spa

 

執行「色階」調整:能夠觀察到圖片的對比度明顯加強。(白的更白,黑的更黑了blog

 

它的原理是這樣的:將原圖中灰度值小於55的點所有強制置爲0,將灰度值高於140的點強制置爲255,而且將55~140之間的色階強行拓寬均勻映射到0~255之間,其效果是圖像對比度加強了。以下圖所示:圖片

 

若是還很差理解,那麼再看看在Photoshop中用「曲線」調整對比度:原理

 

再看看:map

執行「曲線」調整以前,「曲線」是上圖中的藍線,斜率爲1,即y = x。輸入灰階是多少,輸出灰階也是多少方法

調整以後,藍線變成了一條斜率更大的直線,它通過(55, 0)(140, 255)這兩個點。該直線斜率爲: 255.0 / (140 - 55) = 3im

該直線可表示爲:y = 3x -  55 * 3d3

 

設Min = 55, Max = 140img

則該直線可表示爲:y = k * x - Min * k , 其中:k = 255.0/(Max - Min)

 

咱們在曲線中這樣調整加強對比度的原理與以前在「色階」中調整的原理相同。

 

再回到Halcon中。Halcon中灰度值映射的算子主要有scale_image_maxscale_imagescale_image_max相似於Photoshop中的自動對比度,不易於精確控制,而scale_image則更好控制。

 

scale_image(Image : ImageScaled : Mult, Add : )

其輸出圖像與輸入圖像、輸入參數的關係以下:

g' := g * Mult + Add (g是輸入圖像Image,g' 是輸出圖像ImageScaled)

 

咱們再對比一下以前咱們「曲線」調整中得出的公式:y = k * x - Min * k , 其中:k = 255.0/(Max - Min)

能夠類比得:Mult = k, Add =  - Min * k, 即Mult = k, Add =  - Min * Mult

 

可是將Mult、Add做爲參數的函數功能不太直觀,最好將Max、Min做爲函數的參數,所以我封裝出了scale_gray_map (Image, Image2, Min, Max)函數,該函數的內容以下:

Mult := 255.0 / (Max - Min)
Add := -Mult * Min
scale_image (Image, Image2, Mult, Add)
return ()

 

具體以下圖所示:

 

 

 

Halcon中這種加強對比度的方法一樣適用於多通道的彩色圖像。

相關文章
相關標籤/搜索