Python如何實(shí)現(xiàn)伽馬矯正
Python實(shí)現(xiàn)伽馬矯正
伽馬矯正是一種借助了指數(shù)變換映射的增強(qiáng)技術(shù)。
伽馬矯正的映射函數(shù)可表示為:d = T(s)= csY ,其中c和y為常數(shù)。
y的值是控制變換效果的主要因素,所以被稱之為伽馬矯正。
如右圖所示:

- 當(dāng)y 之1時(shí),輸入的低灰度范圍被壓縮,高灰度范圍被拉伸,實(shí)現(xiàn)了強(qiáng)化亮部,壓縮暗部的圖像增強(qiáng)效果;
- 當(dāng)y >1時(shí),輸入的高灰度范圍被壓縮,
- 低灰度范圍被拉伸,實(shí)現(xiàn)了強(qiáng)化暗部,壓縮亮部的圖像增強(qiáng)效果;
gama,pY
代碼實(shí)現(xiàn)
import numpy as np
import cv2
def gama_trans(img, gamma):
# 先歸一化處理,再做伽馬計(jì)算,再還原到[0,255]
gmma_list = [np.power(x / 255.0, gamma) * 255.0 for x in range(256)]
# 將列表?yè)Q成nparray,換成無符號(hào)8為數(shù)
gamma_table = np.round(np.array(gmma_list)).astype(np.uint8)
return cv2.LUT(img, gamma_table)
# 定義matshow方法
def matshow(title='image', image=None, gray=False):
if isinstance(image, np.ndarray):
if len(image.shape) == 2:
pass
elif gray:
# 轉(zhuǎn)換成GRAY格式
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
else:
# 圖片默認(rèn)BGR通道,將突破轉(zhuǎn)換成RGB
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 使用這種方式顯示圖片可能會(huì)導(dǎo)致圖片顯示畸形
# cv2.imshow('image', image)
plt.figure()
# 載入圖像
plt.imshow(image, cmap="gray")
# 設(shè)置標(biāo)題
plt.title(title)
plt.show()
if __name__ == '__main__':
im = cv2.imread('data/lena.jpg', 0)
matshow('im', im)
# 使用小于1的伽馬值
im = gama_trans(im, 0.5)
matshow('im0.5', im)
# 使用大于1的伽馬值
im = gama_trans(im, 3)
matshow('im3', im)實(shí)現(xiàn)效果

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于SpringBoot構(gòu)造器注入循環(huán)依賴及解決方式
這篇文章主要介紹了基于SpringBoot構(gòu)造器注入循環(huán)依賴及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python庫(kù)BeautifulSoup中的select()和select_one()有什么區(qū)別
BeautifulSoup是一個(gè)強(qiáng)大且易于使用的Python庫(kù),它能夠解析HTML和XML文檔,并提供了一系列便捷的方法來提取所需的數(shù)據(jù),其中,`select()`和`select_one()`?允許我們使用?CSS?選擇器來定位文檔中的元素,本文將深入探討這兩個(gè)函數(shù)的使用方法、區(qū)別以及實(shí)際應(yīng)用場(chǎng)景2025-06-06
python出現(xiàn)RuntimeError錯(cuò)誤問題及解決
這篇文章主要介紹了python出現(xiàn)RuntimeError錯(cuò)誤問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
TensorFlow用expand_dim()來增加維度的方法
今天小編就為大家分享一篇TensorFlow用expand_dim()來增加維度的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07
利用Python實(shí)現(xiàn)自定義連點(diǎn)器
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)自定義連點(diǎn)器,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
Python?異步之在?Asyncio中如何運(yùn)行阻塞任務(wù)詳解
這篇文章主要為大家介紹了Python?異步之在?Asyncio?中運(yùn)行阻塞任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

