Python如何實現(xiàn)伽馬矯正
Python實現(xiàn)伽馬矯正
伽馬矯正是一種借助了指數(shù)變換映射的增強技術(shù)。
伽馬矯正的映射函數(shù)可表示為:d = T(s)= csY ,其中c和y為常數(shù)。
y的值是控制變換效果的主要因素,所以被稱之為伽馬矯正。
如右圖所示:
- 當y 之1時,輸入的低灰度范圍被壓縮,高灰度范圍被拉伸,實現(xiàn)了強化亮部,壓縮暗部的圖像增強效果;
- 當y >1時,輸入的高灰度范圍被壓縮,
- 低灰度范圍被拉伸,實現(xiàn)了強化暗部,壓縮亮部的圖像增強效果;
gama,pY
代碼實現(xiàn)
import numpy as np import cv2 def gama_trans(img, gamma): # 先歸一化處理,再做伽馬計算,再還原到[0,255] gmma_list = [np.power(x / 255.0, gamma) * 255.0 for x in range(256)] # 將列表換成nparray,換成無符號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: # 圖片默認BGR通道,將突破轉(zhuǎn)換成RGB image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # 使用這種方式顯示圖片可能會導(dǎo)致圖片顯示畸形 # cv2.imshow('image', image) plt.figure() # 載入圖像 plt.imshow(image, cmap="gray") # 設(shè)置標題 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)
實現(xiàn)效果
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
TensorFlow實現(xiàn)數(shù)據(jù)增強的示例代碼
?TensorFlow數(shù)據(jù)增強?是一種通過變換和擴充訓(xùn)練數(shù)據(jù)的方法,本文主要介紹了TensorFlow實現(xiàn)數(shù)據(jù)增強的示例代碼,具有一定的參考價值,感興趣的可以了解游戲2024-08-08解決pycharm上的jupyter notebook端口被占用問題
今天小編就為大家分享一篇解決pycharm上的jupyter notebook端口被占用問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12python自定義模塊使用.pth文件實現(xiàn)重用方式
這篇文章主要介紹了python自定義模塊使用.pth文件實現(xiàn)重用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02Python requests獲取網(wǎng)頁常用方法解析
這篇文章主要介紹了Python requests獲取網(wǎng)頁常用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-02-02Django如何使用asyncio協(xié)程和ThreadPoolExecutor多線程
這篇文章主要介紹了Django如何使用asyncio協(xié)程和ThreadPoolExecutor多線程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10python3解析庫BeautifulSoup4的安裝配置與基本用法
簡單來說,BeautifulSoup就是Python的一個HTML或XML的解析庫,我們可以用它來方便地從網(wǎng)頁中提取數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于python3解析庫BeautifulSoup4的安裝配置與基本用法的相關(guān)資料,需要的朋友可以參考下2018-06-06Python利用tkinter和socket實現(xiàn)端口掃描
這篇文章主要為大家詳細介紹了Python如何利用tkinter和socket實現(xiàn)端口掃描功能,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下2022-12-12利用selenium 3.7和python3添加cookie模擬登陸的實現(xiàn)
這篇文章主要給大家介紹了關(guān)于利用selenium 3.7和python3添加cookie模擬登陸的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-11-11詳解如何使用pandas進行時間序列數(shù)據(jù)的周期轉(zhuǎn)換
時間序列數(shù)據(jù)是數(shù)據(jù)分析中經(jīng)常遇到的類型,為了更多的挖掘出數(shù)據(jù)內(nèi)部的信息,我們常常依據(jù)原始數(shù)據(jù)中的時間周期,將其轉(zhuǎn)換成不同跨度的周期,下面以模擬的K線數(shù)據(jù)為例,演示如何使用pandas來進行周期轉(zhuǎn)換,感興趣的朋友可以參考下2024-05-05100行Python代碼實現(xiàn)自動搶火車票(附源碼)
又到年底了,相信對于在外地的朋友們來說,火車票是到年底最頭痛的一件事了,但作為程序員的你怎么能一樣呢?快發(fā)揮你的特長,下面這篇文章主要給大家介紹了如果通過100行Python代碼實現(xiàn)自動搶火車票的相關(guān)資料,需要的朋友可以參考下。2018-01-01