欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

python圖像自動Gamma校正

關(guān)于Gamma

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

從效果上來說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值來完成的,

但如果圖片多的情況下,手動設(shè)置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ù)光強(顏色)均勻化原則設(shè)計自適應(yīng)算法。
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:  # 遍歷目標(biāo)文件夾圖片
    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))

總結(jié)

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

相關(guān)文章

  • 談?wù)凱ython:為什么類中的私有屬性可以在外部賦值并訪問

    談?wù)凱ython:為什么類中的私有屬性可以在外部賦值并訪問

    這篇文章主要介紹了談?wù)凱ython:為什么類中的私有屬性可以在外部賦值并訪問,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python實現(xiàn)簡單的索引排序與搜索功能

    Python實現(xiàn)簡單的索引排序與搜索功能

    這篇文章主要介紹了Python實現(xiàn)簡單的索引排序與搜索功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Python3 shutil(高級文件操作模塊)實例用法總結(jié)

    Python3 shutil(高級文件操作模塊)實例用法總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于Python3 shutil實例用法內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • python自動化腳本安裝指定版本python環(huán)境詳解

    python自動化腳本安裝指定版本python環(huán)境詳解

    這篇文章主要為大家詳細介紹了python自動化腳本安裝指定版本python環(huán)境的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Python使用內(nèi)存緩存實例分享

    Python使用內(nèi)存緩存實例分享

    Python中的內(nèi)存緩存是一種將計算結(jié)果存儲在內(nèi)存中,以便在后續(xù)調(diào)用時快速獲取結(jié)果的技術(shù)。通過使用裝飾器和字典等數(shù)據(jù)結(jié)構(gòu),可以輕松實現(xiàn)內(nèi)存緩存功能,提高程序的執(zhí)行效率。
    2023-09-09
  • Python pickle模塊用法實例

    Python pickle模塊用法實例

    這篇文章主要介紹了Python pickle模塊用法實例,python的pickle模塊實現(xiàn)了基本的數(shù)據(jù)序列和反序列化,需要的朋友可以參考下
    2015-04-04
  • 利用Python實現(xiàn)批量裁剪圖片

    利用Python實現(xiàn)批量裁剪圖片

    這篇文章主要為大家詳細介紹了如何基于Python如何批量裁剪圖片并保存,文中的示例代碼講解詳細,具有一定的參考價值,有需要的小伙伴可以了解一下
    2023-10-10
  • python 如何去除字符串頭尾的多余符號

    python 如何去除字符串頭尾的多余符號

    這篇文章主要介紹了python 如何去除字符串頭尾的多余符號,在python開發(fā)中經(jīng)常會遇到這樣的需求,今天小編通過實例代碼給大家講解,需要的朋友可以參考下
    2019-11-11
  • python定義具名元組實例操作

    python定義具名元組實例操作

    在本篇文章里小編給大家分享的是一篇關(guān)于python定義具名元組實例操作內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • 使用Python快速進行Excel合并的幾種場景

    使用Python快速進行Excel合并的幾種場景

    由于工作需要,客戶需要將多個excel文件合并成一個excel中,下面這篇文章主要給大家介紹了關(guān)于使用Python快速進行Excel合并的幾種場景,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10

最新評論