iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
自我挑戰組

數位影像處理系列 第 19

[Day 19]色彩影像增強

  • 分享至 

  • xImage
  •  

先前介紹過的影像增強技術,同樣也可用來對色彩影像進行處理。


1.色彩矯正

若 **伽瑪矯正(Gamma Correction)**技術同時套用於R、G、B色彩影像,則可解決過度曝光或曝光不足的問題。而伽瑪矯正也可僅套用於R、G、B一個通道上,此時由於特別針對單一色彩進行強化或減弱,稱為**色彩矯正(Color Correction)**。
程式碼如下:
import numpy as np
import cv2

def RGB_gamma_correction(f, channel, gamma):
    g = f.copy()
    nr, nc = f.shape[:2]
    c = 255.0 / (255.0 ** gamma)
    table = np.zeros(256)
    for i in range(256):
        table[i] = round(i ** gamma * c, 0)
    if channel == 1:
        k = 2
    elif channel == 2:
        k = 1
    else:
        k = 0
    for x in range(nr):
        for y in range(nc):
            g[x, y, k] = table[f[x, y, k]]
    return g

def main():

    img = cv2.imread("D:\Desktop\IThome\lena.bmp", -1)
    gamma = eval(input("please enter gamma: "))
    img1 = RGB_gamma_correction(img, 1, gamma)
    img2 = RGB_gamma_correction(img, 2, gamma)
    img3 = RGB_gamma_correction(img, 3, gamma)
    cv2.imshow("Original", img)
    cv2.imshow("Gamma Correction(R)", img1)
    cv2.imshow("Gamma Correction(G)", img2)
    cv2.imshow("Gamma Correction(B)", img3)
    cv2.waitKey()
    cv2.destroyAllWindows()

main()

結果如下圖:
https://ithelp.ithome.com.tw/upload/images/20220926/20152370HlTUru5Q5z.png
由左至右分別為:原圖、對R進行增強、對G進行增強、對B進行增強,Gamma值輸入為0.5。


2.直方圖等化

若以灰階影像而言,**直方圖等化(Histogram Equalization)**可解決過度曝光、曝光不足或低對比度等問題。然而,若以色彩影像而言,當R、G、B三個通道同時套用直方圖等化,則產生的結果其實並不理想。

原因在於色彩影像在三個通道的直方圖、PDF或CDF不一定都相同,因此在三個通道中等化的程度都不同。因此為了解決此問題,通常會採用其他色彩模型,例如HSI或HSV的色彩模型,僅對Intensity或Value值進行直方圖等化,而不更改色彩屬性。
import numpy as np
import cv2

def HSV_histogram_equalization(f):
    hsv = cv2.cvtColor(f, cv2.COLOR_BGR2HSV)
    hsv[:, :, 2] = cv2.equalizeHist(hsv[:, :, 2])
    g = cv2.cvtColor(f, cv2.COLOR_HSV2BGR)
    return g

def main():
    img1 = cv2.imread("D:\Desktop\IThome\test.bmp", -1)
    img2 = HSV_histogram_equalization(img1)
    cv2.imshow("Original", img1)
    cv2.imshow("After", img2)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

main()

上述範例採用HSV模型進行直方圖等化,也可以使用HSI模型,但是輸出的影像會有所差異,仍會比使用RGB模型好


上一篇
[Day 18]灰階與色彩轉換
下一篇
[Day 20]色彩影像濾波與HSV分割
系列文
數位影像處理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言