最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)圖像自動Gamma校正方式

 更新時間:2023年10月12日 15:51:32   作者:Fly~~  
這篇文章主要介紹了python實現(xiàn)圖像自動Gamma校正方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

python圖像自動Gamma校正

關于Gamma

Gamma校正是對動態(tài)范圍內(nèi)亮度的非線性存儲/還原算法,即輸入值進行的非線性操作,使輸出值與輸入值呈指數(shù)關系;

從效果上來說Gamma校正調(diào)整圖像的整體亮度,沒有校正的圖像看起來可能會存在過亮或太暗的情況,所以想要圖像顯示效果更完美,Gamma校正就顯得很重要了。

Gamma矯正的計算過程如下:

output=〖input〗^(1/Gamma)

使用上面的指數(shù)函數(shù)把每個像素的RGB值進行變換。

具體執(zhí)行下列轉(zhuǎn)換公式(假定像素值的取值范圍為0到255):

R=〖255X(R/255)〗^((1/gamma))
G=〖255X(G/255)〗^((1/gamma))
B=〖255X(B/255)〗^((1/gamma))

一般處理Gamma矯正都是通過手動調(diào)節(jié)gamma值來完成的,

但如果圖片多的情況下,手動設置gamma值顯得過于麻煩,

這時候就需要采用自動Gamma矯正,將RGB圖片轉(zhuǎn)成灰度圖,

計算灰度圖的數(shù)據(jù)均值,通過下面的計算公式計算gamma值。

gamma_val = math.log10(0.5) / math.log10(mean / 255)

python實現(xiàn)

import cv2
import numpy as np
import math
import os
def gamma_trans(img, gamma):  # gamma函數(shù)處理
    gamma_table = [np.power(x / 255.0, gamma) * 255.0 for x in range(256)]  # 建立映射表
    gamma_table = np.round(np.array(gamma_table)).astype(np.uint8)  # 顏色值為整數(shù)
    return cv2.LUT(img, gamma_table)  # 圖片顏色查表。另外可以根據(jù)光強(顏色)均勻化原則設計自適應算法。
def nothing(x):
    pass
data_base_dir = r'./1'  # 輸入文件夾的路徑
outfile_dir = r'./2'  # 輸出文件夾的路徑
list = os.listdir(data_base_dir)
list.sort()
list2 = os.listdir(outfile_dir)
list2.sort()
for file in list:  # 遍歷目標文件夾圖片
    read_img_name = data_base_dir + '/' + file.strip()  # 取圖片完整路徑
    image = cv2.imread(read_img_name)  # 讀入圖片
    img_gray = cv2.imread(read_img_name, 0)  # 灰度圖讀取,用于計算gamma值
    mean = np.mean(img_gray)
    gamma_val = math.log10(0.5) / math.log10(mean / 255)  # 公式計算gamma
    image_gamma_correct = gamma_trans(image, gamma_val)  # gamma變換
    out_img_name = outfile_dir + '/' + file.strip()
    cv2.imwrite(out_img_name, image_gamma_correct)
    print("The photo which is processed is {}".format(file))

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

榆树市| 郁南县| 石城县| 青龙| 宜都市| 绩溪县| 遵化市| 衡东县| 依兰县| 大邑县| 临汾市| 凤冈县| 河东区| 新野县| 游戏| 嘉黎县| 阿城市| 新泰市| 巴南区| 克东县| 塔河县| 乌拉特后旗| 华蓥市| 广平县| 娄底市| 龙海市| 九江县| 鞍山市| 凤山市| 沛县| 合作市| 波密县| 潞西市| 德清县| 固阳县| 渝北区| 容城县| 全椒县| 竹溪县| 双江| 鸡西市|