圖像的白化處理

目錄

1.白化處理的作用

2.白化處理的原理

3.白化處理的代碼


1.白化處理的作用

圖像白化(whitening)可用於對過度曝光或低曝光的圖片進行處理,下圖所示,左圖是過分曝光,右圖是白化後的結果;

  

2.白化處理的原理

處理的方式就是改變圖像的平均像素值爲 0 ,改變圖像的方差爲單位方差 1。

3.白化處理的代碼

    def whitening(self, img_path):
        img = cv2.imread(img_path)
        img = img / 255.0
        m, dev = cv2.meanStdDev(img)  # 返回均值和方差,分別對應3個通道
        img[:, :, 0] = (img[:, :, 0] - m[0]) / (dev[0]+1e-6)
        img[:, :, 1] = (img[:, :, 1] - m[1]) / (dev[1] + 1e-6)
        img[:, :, 2] = (img[:, :, 2] - m[2]) / (dev[2] + 1e-6)
        # 將 像素值 低於 值域區間[0, 255] 的 像素點 置0
        img = img*255
        img *= (img > 0)
        # 將 像素值 高於 值域區間[0, 255] 的 像素點 置255
        img = img * (img <= 255) + 255 * (img > 255)
        img = img.astype(np.uint8)
        cv2.imshow('result', img)
        cv2.waitKey(1000)
        cv2.destroyAllWindows()
        cv2.imwrite('result.jpg',img)

Pytorch中的線性變換可用於白化處理:

class torchvision.transforms.LinearTransformation(transformation_matrix)
#功能:對矩陣做線性變換,可用於白化處理

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章