彩色图像的直方图调试方法及其调试系统的制作方法

文档序号:6433143阅读:195来源:国知局
专利名称:彩色图像的直方图调试方法及其调试系统的制作方法
技术领域
本发明涉及一种彩色图像调试方法及系统,具体涉及一种彩色图像的直方图调试方法及其调试系统,属于数字图像处理技术领域。
背景技术
当前许多彩色图像由于受拍摄光线、拍摄环境等各种因素的影响,往往会出现各种亮度分布不均勻的情况。对图片的观察者来说,明暗不均的图像不但难以阅读,也很难对所拍摄的物体进行真实的描述。特别是通过阅读图像进行判断的应用领域,容易使观察者产生错判,造成不必要的损失。因此需要对彩色图像的灰度进行调试,以均衡彩色图像灰度,进一步提升彩色图像的品质。目前也有一些图像处理软件可以实现一定的直方图调试功能,比如直方图拉伸和均衡化。但这些调试方法大多封装在开发语言包中,缺乏人机交互。并且由于不同图像的亮度分布情况是不同的,显然用一种固定的模式处理各类图像难以得到令人满意的结果。另外,现有的直方图拉伸和均衡化算法会丢失大量灰度信息,使画面变的单调。当前许多用户也会采用调节亮度的方式去处理亮度分布不均的图像,但这种方法并没从本质上改变图像的直方图分布,对图像品质没有提升。总之,现有的直方图优化技术并不能满足要求,对用户来说如果遇到此类图像难于处理,会造成很多不便。

发明内容
本发明的目的是提供一种彩色图像的直方图调试方法及其调试系统,以克服现有技术的不足,以实现针对不同灰度分布的图像进行有效的人机交互的调试,实现更优化的直方图调整与均衡彩色图像灰度,进一步提升彩色图像的品质。本发明充分利用通用计算机和图像模型中用到的RGB彩色模型,通过经由RGB彩色模型换算得到的直方图这种图像灰度信息表达方式实现对彩色图像进行调试,只需要通过人机交互方式设定图像调整的灰度区域和阈值,就可使用本发明对彩色图像进行处理, 得到针对不同亮度分布图像的处理结果。一种彩色图像的直方图调试方法,首先得到该彩色图像的直方图,其特征在于该方法包括以下步骤(1)设置直方图分区节点,即设定任意个0到255以内的灰度作为分区节点,或者不设定节点而将整个直方图当作一个分区进行调试,而得到相应数量的节点组即分区;(2)设置直方图分区阈值,即对步骤(1)中的每一个分区设定该分区内的一个灰度作为阈值;(3)灰度变换,即对每一个节点组及其对应的阈值计算偏移灰度值,包括以下内容从每一个节点组的下限开始,读取节点组定义区域内的灰阶,并判断灰阶与阈值的关系如果当前灰阶小于阈值,则按照左侧灰阶函数计算偏移灰度值;如果当前灰阶大于阈值,则按照右侧灰阶函数计算偏移灰度值;如果当前灰阶等于阈值,则将阈值保留为偏移灰度值,计算公式下左侧灰阶函数偏移灰度=节点值下限+(当前灰阶-节点值下限)右侧灰阶函数偏移灰度=阈值+° gim (当前灰阶-阈值)
公式1其中左侧灰阶数=阈值-节点值下限右侧灰阶数=节点值上限-阈值+1;公式2
总灰阶数节点值上限-节点值下限+1)如果1/2总灰阶数不为整数,则取整数部分,舍去小数部分;上述偏移灰度值计算公式得到的结果如果不为整数,则取整数部分,舍去小数部分;(4)对彩色图像进行修正,即将原始的彩色图像的每一个灰度值替换为根据步骤 (3)计算得到的偏移灰度值;(5)生成结果。上述步骤(1)中,可根据直方图的递增递减情况,将直方图的各个局部最高点或局部最低点设置为节点,即通过设置分区节点,而使所得的节点组内的灰阶为单调递增或递减。上述步骤( 对每一个分区设置分区阈值时,使分区内阈值两侧的像素点数量之差在5000点范围以内。由于屏幕的分辨率往往在几十万、甚至上百万以上,阈值两侧的像素点数量之差在5000点范围以内足以确保该阈值两侧的像素点数基本相等。一种彩色图像的直方图调试系统,其特征在于该系统包括分别用于设置分区节点和节点组阈值的分区节点模块与分区阈值模块;根据分区节对直方图进行分区的直方图分区模块;判断阈值与直方图分区的配性的阈值设定模块;对直方图进行灰度变换的灰度变换模块;将原始灰度替换为变换之后灰度的图像修正模块;上述灰度变换模块包括以下内容接受来自阈值设定模块的分区节点组和阈值信息;根据分区节点组和阈值信息进行偏移灰度值计算,计算过程采用公式1、2的方式进行, 将计算结果储存为偏移灰度数组,并输出给图像修正模块。上述直方图分区模块包括以下内容根据用户输入的分区节点对彩色图像的直方图进行分区,将分区结果按顺序输出给阈值设定模块。上述阈值设定模块包括以下内容接受来自直方图分区模块的分区结果;根据用户设置的阈值信息判断阈值与分区节点组的匹配性;将分类结果存入数组,并输出给灰度变换模块。上述图像修正模块包括以下内容初始化目标图像并存储像素地址信息;接受来自灰度变换模块的偏移灰度数组;根据接受的偏移灰度数组修正目标图象并保存。
最后,生成结果即可。采用上述系统通过调节彩色图像的直方图实现彩色图像调试的方法,包括以下步骤首先将待处理的彩色图像输入计算机;将图像修正模块、直方图分区模块、阈值设定模块、灰度变换模块组成的系统安装在计算机中;直方图分区模块接受用户设置的分区节点信息,并对分区节点进行分组,将分区节点组以数组形式传输给阈值设定模块;阈值设定模块接收用户设置的阈值,接收来自直方图分区模块的节点数组,并对根据阈值和节点组信息判定两者的匹配性(所谓匹配性是指阈值必须在节点组的区间内),以数组形式储存匹配结果,将包含匹配节点组和阈值信息的数组传输给灰度变换模块;灰度变换模块接收来自阈值设定模块的匹配信息,计算偏移灰度值,通过图像修正模块按偏移灰度数组修正原图像灰度值;输出整幅图像的处理结果, 调试过程结束。本发明具有功能新颖、实现简单、成本低廉、调试效果明显等优点。通过利用直方图实现了用户对RGB图像灰度的调试,不仅克服了现有软件在灰度调试功能上的局限性, 而且用户也可根据自身需求对图像直方图的任意区间和该区间中任意阈值进行设定,体现出了很强的交互性、灵活性和通用性。本发明步骤C3)的计算公式1和2采用了加权平移的方法,加权平移方法充分维护了直方图本身的灰度结构,无论设置怎样的分区与阈值,都可以实现阈值两侧灰度的加权变换,该方法比传统的线性平移的方法更稳定,不会使图像灰度分布发生突变,从而保证了整幅图像的平稳变换。值得说明的是,由于本发明允许在0到 255内任意地设定分区,并且分区内任意灰度均可设置为阈值,因此不但能够实现彩色图像的灰度均衡化这一基本效果,更如一种通用的方法或工具一样通过分区及其阈值可任意性设定的特点,将彩色图像经由直方图进行任意变换与调试,无疑具有广泛的应用前景。


图1是本发明的总体结构示意图。其中,分区节点模块101,分区阈值模块102,直方图分区模块103,直方图阈值设定模块104,灰度变换模块105,图像修正模块106,调试结果107。图2是本发明的图像修正模块106流程示意图。其中包括初始化202、接收偏移灰度组209、指令合法性判断204、指令值合法性判断205、根据偏移灰度修正图像206、应用结束判断208和保存新图像208。图3是本发明的直方图分区模块103流程示意图。其中包括接收分区节点309、指令合法性判断302、指令值合法性判断304,分区节点分组子进程305、将分区节点组按顺序输出306和应用结束判断309。图4是本发明的直方图阈值设定模块104流程示意图。其中包括接收分区节点组410、指令合法性判断402、指令值合法性判断404、接收用户阈值信息405、阈值匹配性判定及分类存储子进程406和应用结束判断408。图5是本发明的灰度变换模块105流程示意图。其中包括接收分区节点组和阈值信息509、指令合法性判断502、指令值合法性判断504、偏移灰度值计算子进程505、生成偏移灰度数组506和应用结束判断507。
图6是本发明的直方图分区模块103中的分区节点分组进程示意图。图7是本发明的直方图阈值设定模块104中的阈值匹配性判定及分类存储示意图。图8是本发明的灰度变换模块105中的偏移灰度值计算示意图。图9是本发明的图像修正模块106中的根据偏移灰度修正图像示意图。图10是某彩色图像经本发明调试之后的直方图的示意图。
具体实施例方式如图1所示,一种彩色图像的直方图调试方法,首先得到该彩色图像的直方图,还包括以下步骤(1)用户设置直方图分区节点,即用户设定任意个0到255以内的灰度作为分区节点,或者不设定节点而将整个直方图当作一个分区进行调试,而得到相应数量的节点组即分区;(2)用户设置直方图分区阈值,即用户对步骤(1)中的每一个分区设定该分区内的一个灰度作为阈值;(3)灰度变换,即对每一个节点组及其对应阈值的数组计算偏移灰度值,包括以下内容从每一个节点组的下限开始,读取节点组定义区域内的灰阶,并判断灰阶与阈值的关系如果当前灰阶小于阈值,则按照左侧灰阶函数计算偏移灰度值;如果当前灰阶大于阈值,则按照右侧灰阶函数计算偏移灰度值;如果当前灰阶等于阈值,则将阈值保留为偏移灰度值,计算公式如下左侧灰阶函数偏移灰度=节点值下限+(当前灰阶-节点值下限)右侧灰阶函数偏移灰度调值^mni)(当前-阈值).
公式1其中左侧灰阶数=阈值-节点值下限右侧灰阶数=节点值上限-阈值+1;公式2
总灰阶数节点值上限-节点值下限+1)如果1/2总灰阶数不为整数,则取整数部分,舍去小数部分;上述偏移灰度值计算公式得到的结果如果不为整数,则取整数部分,舍去小数部分;(4)对彩色图像进行修正,即将原始的彩色图像的每一个灰度值替换为根据步骤 (3)计算得到的偏移灰度值;(5)生成结果。如图10所示,上述步骤(1)中,用户可根据直方图的递增递减情况,将直方图的各个局部最高点或局部最低点设置为节点,即用户通过设置分区节点,而使所得的节点组内的灰阶为单调递增或递减,这样会更有利于使调试结果尽量平滑,提高画质;用户也可根据自身需要任意设定节点,每幅直方图可设定任意个节点,将其分成任意个分区,但节点一定要大于等于零且小于255,因为灰度区间是0到255 ;用户也可不设定节点,那么将整个直方图当作一个分区进行调试;当用户设定完分区节点后,再进行分区节点组的阈值设置。上述步骤( 用户对每一个分区设置分区阈值时,使分区内阈值两侧的像素点数量之差在5000点范围以内。由于屏幕的分辨率往往在几十万、甚至上百万以上,阈值两侧的像素点数量之差在5000点范围以内足以确保该阈值两侧的像素点数基本相等。用户也可根据自身需要任意设定阈值,但每个分区只能设置一个阈值,否则提示出错。如图1所示,一种彩色图像的直方图调试系统,其特征在于该系统包括分别用于设置分区节点和节点组阈值的分区节点模块101与分区阈值模块102 ;根据分区节对直方图进行分区的直方图分区模块103 ;判断阈值与直方图分区的配性的阈值设定模块104 ;对直方图进行灰度变换的灰度变换模块105 ;将原始灰度替换为变换之后灰度的图像修正模块 106 ;上述灰度变换模块105包括以下内容接受来自阈值设定模块104的分区节点组和阈值信息;根据分区节点组和阈值信息进行偏移灰度值计算,计算过程采用公式1、2的方式进行,将计算结果储存为偏移灰度数组,并输出给图像修正模块106。图5表示上述灰度变换模块105,包括以下内容接受来自104的包含匹配后的分区节点组及其对应阈值的数组509 ;判断指令的合法性502 ;查询指令值的合法性;根据 509所接收的数组信息计算偏移灰度值505 ;生成偏移灰度数组506 ;判断应用是否结束 507。图8表示上述计算偏移灰度值子进程505,包括以下内容读取节点组及其对应阈值802 ;计算函数因子803,包括左侧灰阶数804,1/2总灰阶数805,右侧灰阶数806,以备计算偏移灰度值调用。计算公式如式2所示
权利要求
1.一种彩色图像的直方图调试方法,包括生成该彩色图像的直方图的步骤,其特征在于该方法还包括以下步骤(1)设置直方图分区节点,即设定任意个O到255以内的灰度作为分区节点,或者不设定节点而将整个直方图当作一个分区进行调试,而得到相应数量的节点组即分区;(2)设置直方图分区阈值,即对步骤(1)中的每一个分区设定该分区内的一个灰度作为阈值;(3)灰度变换,即对每一个节点组及其对应的阈值计算偏移灰度值,包括以下内容从每一个节点组的下限开始,读取节点组定义区域内的灰阶,并判断灰阶与阈值的关系如果当前灰阶小于阈值,则按照左侧灰阶函数计算偏移灰度值;如果当前灰阶大于阈值,则按照右侧灰阶函数计算偏移灰度值;如果当前灰阶等于阈值,则将阈值保留为偏移灰度值,计算公式下左侧灰阶函数偏移灰度=节点值下限+(当前灰阶-节点值下限)右侧灰阶函数:偏移灰度=阈值^mni)(当前灰阶-阈值).公式1偏移灰度值计算公式其中左侧灰阶数=阈值-节点值下限右侧灰阶数=节点值上限-阈值+1 ;总灰阶数节点值上限-节点值下限+1)公式2函数因子计算公式如果1/2总灰阶数不为整数,则取整数部分,舍去小数部分;上述偏移灰度值计算公式得到的结果如果不为整数,则取整数部分,舍去小数部分;(4)对彩色图像进行修正,即将原始的彩色图像的每一个灰度值替换为根据步骤(3) 计算得到的偏移灰度值;(5)最后生成调试结果。
2.如权利要求1所述的调试方法,其特征在于上述步骤(1)中,设置直方图分区节点, 使所得的节点组内的灰阶为单调递增或递减。
3.如权利要求1所述的调试方法,其特征在于上述步骤( 对每一个直方图分区设置分区阈值时,使分区内阈值两侧的像素点数量之差在5000点范围以内,而使阈值两侧的像素点数基本相等。
4.如权利要求1所述的调试方法,其特征在于在上述步骤C3)灰度变换之前对步骤 2所设阈值的匹配性进行判断,即从节点组的首位依次读取每一个节点组,并读取步骤(2) 的阈值信息;当且仅当阈值和节点组满足如下关系节点组下限<阈值且阈值 < 节点组上限,则将节点组对应阈值存入新数组,如不满足则报错并提示修正输入值;判断节点组的数组地址是否到最后一位,如果是末位则边界判定结束,如果不是末位则数组地址增加1。
5.如权利要求1所述的调试方法,其特征在于在上述步骤(4)对彩色图像进行修正的步骤如下接受步骤C3)的偏移灰度;读取彩色图像的直方图;在直方图的每一个节点组区间内取灰度值;在原图像的复制图像中搜索具有该灰度的像素;在偏移灰度数组内取该像素的灰度所对应的偏移灰度;修正复制图像对应像素的灰度为偏移灰度;判断该灰度是否达到区间边界;当修正从0到255灰阶结束后,即进行步骤(5)的调试生成结果。
6.一种彩色图像的直方图调试系统,其特征在于该系统包括分别用于设置分区节点和节点组阈值的分区节点模块(101)与分区阈值模块(10 ;根据分区节对直方图进行分区的直方图分区模块(103);判断阈值与直方图分区的配性的阈值设定模块(104);对直方图进行灰度变换的灰度变换模块(105);将原始灰度替换为变换之后灰度的图像修正模块 (106);上述灰度变换模块(10 包括以下内容接受来自阈值设定模块(104)的分区节点组和阈值信息;根据分区节点组和阈值信息进行偏移灰度值计算,计算过程采用公式1、2的方式进行,将计算结果储存为偏移灰度数组,并输出给图像修正模块(106)。
7.如权利要求6所述的调试系统,其特征在于上述直方图分区模块(103)包括以下内容根据用户输入的分区节点对彩色图像的直方图进行分区,将分区结果按顺序输出给阈值设定模块(104)。
8.如权利要求6所述的调试系统,其特征在于上述阈值设定模块(104)包括以下内容 接受来自直方图分区模块(103)的分区结果;根据用户设置的阈值信息判断阈值与分区节点组的匹配性;将分类结果存入数组,并输出给灰度变换模块(105)。
9.如权利要求6所述的调试系统,其特征在于上述图像修正模块(106)包括以下内容 初始化目标图像并存储像素地址信息;接受来自灰度变换模块(10 的偏移灰度数组;根据接受的偏移灰度数组修正目标图象并保存。
全文摘要
彩色图像的直方图调试方法及其调试系统,该方法包括设置彩色图像直方图分区节点及其阈值,然后根据所得到的带有阈值的节点组,对每一个灰度进行加权平移的计算而得到偏移灰度,然后将彩色图像的每一个灰度替换为偏移灰度即可。该系统包括分区节点模块、分区阈值模块、直方图分区模块、阈值设定模块、灰度变换模块和图像修正模块。本发明具有功能新颖、实现简单、成本低廉、调试效果明显等优点。通过利用直方图实现了用户对RGB图像灰度的调试,不仅克服了现有软件在灰度调试功能上的局限性,而且用户也可根据自身需求对图像直方图的任意区间和该区间中任意阈值进行设定,体现出了很强的交互性、灵活性和通用性,无疑具有广泛的应用前景。
文档编号G06T5/40GK102306380SQ201110271810
公开日2012年1月4日 申请日期2011年9月14日 优先权日2011年9月14日
发明者于砚廷, 倪秀辉, 刘慧 , 夏卫平, 崔浩, 李晔, 杨光, 王中秋, 许岩, 邢攸广, 项顼, 马庆锋 申请人:山东省科学院海洋仪器仪表研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1