資源簡介
使用Python3實現了圖片的亮度的自適應調整的算法,解決了圖片亮度不一的問題。
代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
#?作者:????ZFJ
#?創建時間:2019/7/2211:02
#?文件:????gamma.py
#?IDE:?????PyCharm
“““
算法的核心思想如下:首先將輸入的圖像從RGB模式轉換到HSV模式,
我們保持每幅圖像的色調和飽和度不變,只改變它的亮度,
使用多尺度的高斯函數進行卷積,并使用二位的伽馬函數進行校正處理,
然后將矯正后的圖像重新合成彩色的圖像,從HSV模式轉換到RGB模式
“““
#?img是原圖,rgb是輸出圖像,p是處理前和處理后的平均亮度差
import?cv2
import?math
import?numpy?as?np
from?skimage?import?color
import?os
#?文件夾路徑
path?=?‘G:/Competition?data/OCR-train-publish-v2/test/‘
#?獲取該文件夾中的所有文件
files?=?os.listdir(path)
#?檢查文件路徑是否存在問題
#?print(files)
#?定義一個全局參數用于對輸出圖片命名
global?i
i?=?1
#?參數
HSIZE?=?25
q?=?math.sqrt(2)
SIGMA1?=?15
SIGMA2?=?80
SIGMA3?=?250
#?對所有文件進行遍歷處理
for?file?in?files:
????#?判斷file是否為文件夾
????if?not?os.path.isdir(file):
????????#?讀取圖片
????????im?=?cv2.imread(path+file)
????????#?檢查是否讀取到了圖像,不然下面就GG了
????????#?print(im)
????????#?顯示原圖
????????#?cv2.imshow(‘input.jpg‘?im)
????????#?將rgb圖像轉換為hsv圖像
????????hsv?=?color.rgb2hsv(im)
????????#?分離hsv通道
????????h?s?v?=?cv2.split(hsv)
????????#?對亮度v通道進行不同參數的高斯濾波
????????F1?=?cv2.GaussianBlur(v?(HSIZE?HSIZE)?
- 上一篇:python主題爬取百度新聞
- 下一篇:python核心編程第二版習題答案
評論
共有 條評論