范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

图像增强及运算局部直方图均衡化和自动色彩均衡化处理

  本文分享自华为云社区《[Python从零到壹] 五十四.图像增强及运算篇之局部直方图均衡化和自动色彩均衡化处理-云社区-华为云》,作者: eastmount。一.局部直方图均衡化
  前文通过调用OpenCV中equalizeHist()函数实现直方图均衡化处理,该方法简单高效,但其实它是一种全局意义上的均衡化处理,很多时候这种操作不是很好,会把某些不该调整的部分给均衡处理了。同时,图像中不同的区域灰度分布相差甚远,对它们使用同一种变换常常产生不理想的效果,实际应用中,常常需要增强图像的某些局部区域的细节。
  为了解决这类问题,Pizer等提出了局部直方图均衡化的方法(AHE),但AHE方法仅仅考虑了局部区域的像素,忽略了图像其他区域的像素,且对于图像中相似区域具有过度放大噪声的缺点。为此K. Zuiderveld等人提出了对比度受限CLAHE的图像增强方法,通过限制局部直方图的高度来限制局部对比度的增强幅度,从而限制噪声的放大及局部对比度的过增强,该方法常用于图像增强,也可以被用来进行图像去雾操作[1-2]。
  在OpenCV中,调用函数createCLAHE()实现对比度受限的局部直方图均衡化。它将整个图像分成许多小块(比如按10×10作为一个小块),那么对每个小块进行均衡化。这种方法主要对于图像直方图不是那么单一的(比如存在多峰情况)图像比较实用。其函数原型如下所示:
  retval = createCLAHE([, clipLimit[, tileGridSize]])clipLimit参数表示对比度的大小tileGridSize参数表示每次处理块的大小
  调用createCLAHE()实现对比度受限的局部直方图均衡化的代码如下:# -*- coding: utf-8 -*- # By:Eastmount import cv2   import numpy as np   import matplotlib.pyplot as plt   #读取图片 img = cv2.imread("lena.bmp")  #灰度转换 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)   #局部直方图均衡化处理 clahe = cv2.createCLAHE(clipLimit=2, tileGridSize=(10,10))  #将灰度图像和局部直方图相关联, 把直方图均衡化应用到灰度图  result = clahe.apply(gray)  #显示图像 plt.subplot(221) plt.imshow(gray, cmap=plt.cm.gray), plt.axis("off"), plt.title("(a)")  plt.subplot(222) plt.imshow(result, cmap=plt.cm.gray), plt.axis("off"), plt.title("(b)")  plt.subplot(223) plt.hist(img.ravel(), 256), plt.title("(c)")  plt.subplot(224) plt.hist(result.ravel(), 256), plt.title("(d)")  plt.show()
  输出结果如图1所示,图1(a)为原始图像,对应的直方图为图1©,图1(b)和图1(d)为对比度受限的局部直方图均衡化处理后的图像及对应直方图,它让图像的灰度值分布更加均衡。可以看到,相对于全局的直方图均衡化,这个局部的均衡化似乎得到的效果更自然一点。
  二.自动色彩均衡化
  Retinex算法是代表性的图像增强算法,它根据人的视网膜和大脑皮层模拟对物体颜色的波长光线反射能力而形成,对复杂环境下的一维条码具有一定范围内的动态压缩,对图像边缘有着一定自适应的增强。自动色彩均衡(Automatic Color Enhancement,ACE)算法是在Retinex算法的理论上提出的,它通过计算图像目标像素点和周围像素点的明暗程度及其关系来对最终的像素值进行校正,实现图像的对比度调整,产生类似人体视网膜的色彩恒常性和亮度恒常性的均衡,具有很好的图像增强效果[3-4]。
  ACE算法包括两个步骤,一是对图像进行色彩和空域调整,完成图像的色差校正,得到空域重构图像;二是对校正后的图像进行动态扩展。ACE算法计算公式如下:
  其中,W是权重参数,离中心点像素越远的W值越小;g是相对对比度调节参数,其计算方法如公式(22-2)所示,a表示控制参数,值越大细节增强越明显。
  图2是条形码图像进行ACE图像增强后的效果图,通过图像增强后的图(b)对比度更强,改善了原图像的明暗程度,增强的同时保持了图像的真实性。
  由于OpenCV中暂时没有ACE算法包,下面的代码是借鉴"zmshy2128"老师的文章,修改实现的彩色直方图均衡化处理[5]。# -*- coding: utf-8 -*- # By:Eastmount # 参考zmshy2128老师文章 import cv2 import numpy as np import math import matplotlib.pyplot as plt  #线性拉伸处理 #去掉最大最小0.5%的像素值 线性拉伸至[0,1] def stretchImage(data, s=0.005, bins = 2000):        ht = np.histogram(data, bins);     d = np.cumsum(ht[0])/float(data.size)     lmin = 0; lmax=bins-1     while 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):                             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  #常规的ACE实现 def zmIce(I, ratio=4, radius=300):                          para = getPara(radius)     height,width = I.shape          #Python3报错如下 使用列表append修改     zh = []     zw = []     n = 0     while n < radius:         zh.append(0)         zw.append(0)         n += 1     for n in range(height):         zh.append(n)     for n in range(width):         zw.append(n)     n = 0     while n < radius:         zh.append(height-1)         zw.append(width-1)         n += 1     #print(zh)     #print(zw)          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  #单通道ACE快速增强实现 def zmIceFast(I, ratio, radius):     print(I)     height, width = I.shape[:2]     if min(height, width) <=2:         return np.zeros(I.shape)+0.5     Rs = cv2.resize(I, (int((width+1)/2), int((height+1)/2)))     Rf = zmIceFast(Rs, ratio, radius)             #递归调用     Rf = cv2.resize(Rf, (width, height))     Rs = cv2.resize(Rs, (width, height))       return Rf+zmIce(I,ratio, radius)-zmIce(Rs,ratio,radius)     #rgb三通道分别增强 ratio是对比度增强因子 radius是卷积模板半径           def zmIceColor(I, ratio=4, radius=3):                    res = np.zeros(I.shape)     for k in range(3):         res[:,:,k] = stretchImage(zmIceFast(I[:,:,k], ratio, radius))     return res  #主函数 if __name__ == "__main__":     img = cv2.imread("test01.png")     res = zmIceColor(img/255.0)*255     cv2.imwrite("Ice.jpg", res)
  运行结果如图3和图4所示,ACE算法能有效进行图像去雾处理,实现图像的细节增强。
  三.总结
  本文主要讲解图像局部直方图均衡化和自动色彩均衡化处理。这些算法可以广泛应用于图像增强、图像去噪、图像去雾等领域。
  参考文献:[1]王浩,张叶,沈宏海,张景忠.图像增强算法综述[J].中国光学,2017,10(04):438-448.[2]李艳梅. 图像增强的相关技术及应用研究[D].电子科技大学,2013.[3]S. Bidon, Olivier Besson, J. Y. Tourneret. The Adaptive Coherence Estimator is the Generalized Likelihood Ratio Test for a Class of Heterogeneous Environments[J]. IEEE Signal Processing Letters, 2008, 15: 281-284.[4]eastmount. [Python图像处理] 三十八.OpenCV图像增强和图像去雾万字详解(直方图均衡化、局部直方图均衡化、自动色彩均衡化)[EB/OL]. (2021-03-12). https://blog.csdn.net/ Eastmount/article/details/114706950.[5]zmshy2128. 自动色彩均衡(ACE)快速算法[EB/OL]. (2016-12-05). https://www.cnblogs.com/zmshy2128/p/6135551.html.
  点击下方,第一时间了解华为云新鲜技术~
  华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云

一些三无网站充斥网络,正在毒害缅甸青年互联网快速发展带来便利的同时,也为不法分子带来可乘之机。一些非法三无网站充斥网络,成为侵害版权损害未成年人合法权益网络诈骗和色情的集散地,违法犯罪滋生的温床。最近,三无网站乱象引起网信部清理网络环境弊大于利本世纪,互联网飞速发展,以互联网为依托的自媒体更是异军突起方兴未艾,人们通过自媒体,了解国家和世界各地发生的新鲜事,也通过自媒体发表自己的看法认识,可以说,自媒体已经成为人民群众了汉代冠冕的演变史,从御寒工具到权势的象征,冠冕蕴含怎样意义?历史开讲在阅读此文之前,麻烦您点击一下关注,既方便您进行讨论和分享,又能给您带来不一样的参与感,感谢您的支持!在古时候,随着时代的发展,古人对于穿着打扮的要求是不断变化的。其中,变三一ampampamp中鼎新能源建材产业园启动200台三一纯电动搅拌车批量交付三一中鼎新能源建材产业园启动仪式暨电动搅拌车交付仪式现场。2月25日,一场以智领盐城电动未来为主题的三一中鼎新能源建材产业园启动仪式暨电动搅拌车交付仪式在江苏盐城举行。来自全国各地安吉我觉得自己很幸运,在中国这片美丽的土地上学习收获与成长老外讲故事另眼观盛会(54)继百集融媒体产品百年大党老外讲故事和老外讲故事海外员工看中国境内外播放量分别突破16亿和10亿之后,上海又推出老外讲故事第三季另眼观盛会。中共二十大的召开不仅决定着中国的未来发展,水利部云南省腾冲灌区工程开工央广网北京2月26日消息(记者陈锐海)记者从水利部获悉,2月26日,云南省腾冲灌区工程开工建设。该工程是水利部2023年重点推进的重大水利工程之一,总投资38。69亿元,工期48个中小学黑竞赛需要综合施治违规竞赛!近期,教育部回应了群众反映的叶圣陶杯华人青少年作文大赛,引发社会关注。有媒体调查发现,如今以中小学生为目标的各类违规竞赛依旧不少。不少大赛动辄标榜国家级,但交钱就有奖,其血库告急,空军官兵挽袖献血作者尚洁岩陈科先吴龙血库告急,请求你部支援!日前,南部战区空军某场站接到驻地双拥办的紧急函立即动员官兵参与无偿献血活动官兵们积极响应报名人数超过200人活动现场有多次献血的干部骨干俄军没有掌握制空权!如果乌克兰大反攻,只能靠俄陆军独自阻挡前两天我们聊了乌军扎波罗热劈入战该怎么打的问题,很多网友在评论中说,俄军掌握着制空权,乌军在没有制空权的情况下发动反攻,必将遭遇惨败。那这一期我们就聊一聊俄军的制空权究竟有几分成色火箭军某部扎实开展战术基础训练,全面提升部队能力素质单个人员专项训练班组分段强化训练单元要素协同训练近日,火箭军某部训练场内,持续掀起新一轮的军事训练热潮,从发射号手到保障尖兵,广大官兵扎实开展战术基础训练,全面提升部队能力素质。该深交所快速响应企业诉求以创享荟为平台助力行业深度交流黄灵灵中国证券报中证网中证网讯(记者黄灵灵)近日,深交所举办创享荟首期活动ESG信息披露专题活动,帮助上市公司解决在ESG信息披露中遇到的实际问题。据悉,深交所于近期召开了多场行业
美专家中美在东沙岛爆发冲突风险最高如果大陆在台海不得不采取以打促谈的方案,那么会先打哪儿呢?从地图上看,金门马祖澎湖东沙岛太平岛这些台湾外岛都可以打。不过,太平岛远在南海腹地,打下来对台湾当局起不到多大的震慑作用马7月30日澳洲最新房价变化根据CoreLogic的住宅价值指数显示,悉尼的住宅价值正在以至少30年来最快的月度速度暴跌。CoreLogic每日住宅价值指数反映了五个主要首都的价格变化,在截至葬礼上的五交(小说)天刚蒙蒙亮,伴丧的西乐和锣鼓便震翻天,一班接一班地开进乡里。戏台前,灵堂布置得富丽堂皇,直播屏幕不间断地播放喜丧视频,无人机在天上嗡嗡地飞着,记录着人间的悲欢离合。人们陆陆续续往戏此文,写给操劳了一生的六零后文夏莫01卷首语岁月催人老,一晃眼,年轻的时光已经一去不复返。看着城市里高楼耸立,行人步履匆匆,蓦然回首,恍然觉得年轻的时光,还在眼前。六零后是生农村,长在农村的一代人。他们住的是感情故事(法官的出轨之路)看到高台上的法官,我的心里充满了悔恨,半年之前的我还坐在上面给犯人审判,没想到半年之后的我也成了审判的对象。看到白发苍苍的父母,我百感交集。事情还要从头说起,我生在中原的一个小县城持有2支BB弹仿真枪也是涉嫌非法持有枪支罪?因持有的6支配用塑料BB弹的仿真枪被鉴定为非制式枪支,27岁男子莫某此前被广州荔湾区法院一审判处犯非法持有枪支罪,免于刑事处罚,并对依法扣押的枪支予以没收。莫某认为自己无罪,选择上中国中低端芯片已量产,外国芯片囤积过多,反求中国购买损失严重过去由于技术和人才等问题,我国在芯片研发领域尚有不足,不能够自给自足,只能大量从外国进口芯片。芯片过度依赖进口毕竟不是长远之事。这些年来,我国也一直加大对芯片的研发力度,如今我国已降糖药成网红减肥针?肥胖人群真能放心用吗?药师提醒这3点29岁的小周身高165厘米,体重145斤,为了减肥,她尝试过节食运动,但由于她管不住嘴又迈不开腿,每次减肥都以失败告终。看到某社交平台上有一款网红减肥针,小周就特别心动,特别是有网一味成方尹涛灵芝粉和灵芝孢子粉,两字之差,区别很大说起灵芝,大家都知道它是一种名贵的物质。但是你以为灵芝粉灵芝孢子粉?那就是大错特错!今天我们就来快速读懂两者的区别。什么是灵芝粉?成熟后的灵芝子实体已是木质化的,故不能像吃香菇一样油价高涨不下?是时候把目光放到这几款省油大师身上了6月初的购置税减半政策刚刚让等等党们迎来了春天,然而高居不下的油价却又让不少小伙伴在购车这件事儿上犯了难选油车担心用车成本扛不住,选纯电动又不想要续航焦虑,其实你还有第三个选择!今秦百戏俑看着像把大门穿身上了视频加载中原标题秦百戏俑看着像把大门穿身上了秦始皇帝陵K9901陪葬坑,位于秦始皇帝陵陵园的东南部,是一座内有东西向三条过洞两端分别有斜坡门道大东西向凸字形陪葬坑,总面积约800平