日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

卷积神经网络算法python实现_自动色彩均衡(ACE)快速算法python实现

發(fā)布時(shí)間:2025/3/15 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 卷积神经网络算法python实现_自动色彩均衡(ACE)快速算法python实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自動(dòng)色彩均衡(ACE)快速算法

ACE算法源自retinex算法,可以調(diào)整圖像的對比度,實(shí)現(xiàn)人眼色彩恒常性和亮度恒常性,通過差分來計(jì)算目標(biāo)點(diǎn)與周圍像素點(diǎn)的相對明暗關(guān)系來校正最終像素值,有很好的增強(qiáng)效果。但是計(jì)算復(fù)雜度非常高,本文提出一種有效的快速實(shí)現(xiàn)方法。

為敘述方便,這里假設(shè)后面的圖像都是歸一化到[0,1]之間的浮點(diǎn)數(shù)圖像。

ACE算法的計(jì)算公式為:

Y = ??∑(g(I(x0)-I(x))w(x0,x)) ?/?∑(w(x0,x)) ???????????????????????????????????x屬于I ???????????????????????????????(1)

其中,w是權(quán)重參數(shù),離中心點(diǎn)像素越遠(yuǎn)w值越小,可以直接取值歐氏距離。g()是相對對比度調(diào)節(jié)參數(shù),非線性的,簡單取如下計(jì)算方法:

g(x) = max(min(ax, 1.0), -1.0) ???????????????????????????????????????????????????????????????????????????????????????(2)

這里a是控制參數(shù),值越大,細(xì)節(jié)增強(qiáng)越明顯。計(jì)算完后,還要對Y進(jìn)行一次歸一化即可得到最終的增強(qiáng)圖像。

ACE的增強(qiáng)效果普遍與retinex好。需要注意的是,ACE中當(dāng)前像素是與整個(gè)圖像的其他像素做差分比較,計(jì)算復(fù)雜度非常非常高,這也是限制它應(yīng)用的最主要原因,本文主要基于兩個(gè)假設(shè):(1)對一副圖像ACE增強(qiáng)后得到輸出Y,如果對Y再進(jìn)行一次ACE增強(qiáng),輸出仍然是Y本身;(2)對一副圖像的ACE增強(qiáng)結(jié)果進(jìn)行尺寸縮放得到Y(jié),對Y進(jìn)行ACE增強(qiáng),輸出仍然是Y本身。這兩個(gè)假設(shè)我沒法證實(shí),呵呵,就算臆想的吧。

如果上面假設(shè)成立,我們就可以對圖像進(jìn)行縮放得到I1,對I1的ACE增強(qiáng)結(jié)果進(jìn)行尺度放大(與I尺寸一樣)得到Y(jié)1,那么Y和Y1是非常接近的,我們只需要在Y1基礎(chǔ)上進(jìn)一步處理即可。這里就又引申了兩個(gè)細(xì)節(jié)問題:1)如何快速的求I1的ACE增強(qiáng)結(jié)果? 其實(shí)很簡單,對它再次縮放得到I2,求I2的增強(qiáng)結(jié)果,依次類推,就是金字塔結(jié)構(gòu)思想。2)如何在Y1基礎(chǔ)上進(jìn)一步處理得到Y(jié)? 因?yàn)槭窃谡麄€(gè)圖像域進(jìn)行差分比較運(yùn)算,與近處鄰域像素的比較構(gòu)成了Y的細(xì)節(jié)信息,與遠(yuǎn)處像素的比較構(gòu)成了Y的全局背景信息,那么我們合理假設(shè),Y和Y1的全局背景信息相同,只更新細(xì)節(jié)信息即可,也就是,我們需要在Y1基礎(chǔ)上加上I中鄰近像素的差分結(jié)果,并減去Y1中鄰近像素的差分結(jié)果就是最終的輸出Y。

上面說的有點(diǎn)繞,慢慢看吧。

下面是python代碼

import cv2

import numpy as np

import math

def stretchImage(data, s=0.005, bins = 2000): ? ?#線性拉伸,去掉最大最小0.5%的像素值,然后線性拉伸至[0,1]

ht = np.histogram(data, bins);

d = np.cumsum(ht[0])/float(data.size)

lmin = 0; lmax=bins-1

while lmin

if d[lmin]>=s:

break

lmin+=1

while lmax>=0:

if d[lmax]<=1-s:

break

lmax-=1

return np.clip((data-ht[1][lmin])/(ht[1][lmax]-ht[1][lmin]), 0,1)

g_para = {}

def getPara(radius = 5): ? ? ? ? ? ? ? ? ? ? ? ?#根據(jù)半徑計(jì)算權(quán)重參數(shù)矩陣

global g_para

m = g_para.get(radius, None)

if m is not None:

return m

size = radius*2+1

m = np.zeros((size, size))

for h in range(-radius, radius+1):

for w in range(-radius, radius+1):

if h==0 and w==0:

continue

m[radius+h, radius+w] = 1.0/math.sqrt(h**2+w**2)

m /= m.sum()

g_para[radius] = m

return m

def zmIce(I, ratio=4, radius=300): ? ? ? ? ? ? ? ? ? ? #常規(guī)的ACE實(shí)現(xiàn)

para = getPara(radius)

height,width = I.shape

zh,zw = [0]*radius + range(height) + [height-1]*radius, [0]*radius + range(width) ?+ [width -1]*radius

Z = I[np.ix_(zh, zw)]

res = np.zeros(I.shape)

for h in range(radius*2+1):

for w in range(radius*2+1):

if para[h][w] == 0:

continue

res += (para[h][w] * np.clip((I-Z[h:h+height, w:w+width])*ratio, -1, 1))

return res

def zmIceFast(I, ratio, radius): ? ? ? ? ? ? ? ?#單通道ACE快速增強(qiáng)實(shí)現(xiàn)

height, width = I.shape[:2]

if min(height, width) <=2:

return np.zeros(I.shape)+0.5

Rs = cv2.resize(I, ((width+1)/2, (height+1)/2))

Rf = zmIceFast(Rs, ratio, radius) ? ? ? ? ? ? #遞歸調(diào)用

Rf = cv2.resize(Rf, (width, height))

Rs = cv2.resize(Rs, (width, height))

return Rf+zmIce(I,ratio, radius)-zmIce(Rs,ratio,radius)

def zmIceColor(I, ratio=4, radius=3): ? ? ? ? ? ? ? #rgb三通道分別增強(qiáng),ratio是對比度增強(qiáng)因子,radius是卷積模板半徑

res = np.zeros(I.shape)

for k in range(3):

res[:,:,k] = stretchImage(zmIceFast(I[:,:,k], ratio, radius))

return res

if __name__ == '__main__':

m = zmIceColor(cv2.imread('p4.bmp')/255.0)*255

cv2.imwrite('zmIce.jpg', m)

下面是實(shí)驗(yàn)結(jié)果,上邊是原圖,下邊是增強(qiáng)結(jié)果。

————————————————

版權(quán)聲明:本文為CSDN博主「zmshy2128」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/zmshy2128/article/details/53470357

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的卷积神经网络算法python实现_自动色彩均衡(ACE)快速算法python实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。