matlab去雾处理是视频,一种快速视频去雾方法与流程

本发明涉及视频处理技术领域,尤其是一种快速视频去雾方法。

背景技术:

雾霾条件下拍摄的视频,受到大气环境的影响,会产生退化和失真,这些视频无法反应真实场景的信息。视频去雾是通过一定技术处理,去除雾霾的干扰,恢复视频的细节信息,得到具有良好视觉效果的视频。理论上,视频去雾算法以图像算法为基础,将视频的每帧图像单独作去雾处理,再将处理后的图像按顺序排列重新构成视频,即可完成视频去雾,然而图像去雾算法计算复杂,难以满足视频的是实行要求。总之,视频需要一种既要满足去雾性能的要求,又要保证其计算复杂度较低和速度较快的数据处理方法。

技术实现要素:

本发明所要解决的技术问题在于,提供一种快速视频去雾方法,能够减少计算量,提高去雾算法的运行效率

为解决上述技术问题,本发明提供一种快速视频去雾方法,包括如下步骤:

(1)采集一帧图像保存入帧存,设置循环变量i=1、k=1;

(2)设一个像素RGB三通道的最小灰度值为min(x),该帧图像中所有像素min(x)的最大、最小、平均值分别为gmax、gmin、gmean,以满足min(x)≥g0的所有像素RGB三通道中的最大灰度值为大气光A;其中

(3)以像素x为中心、周围γ×γ个像素的min(x)中的最小值为x的暗通道值Dark(x),计算一帧图像所有像素的Dark(x)并保存入另一帧存,以此作为该帧图像的暗通道图;

(4)按照暗通道物理模型,根据步骤(2)得到的大气光和步骤(3)得到的暗通道图进行求解,去雾计算式为:

式中I(x)为像素x在原图中RGB三通道的灰度值,J(x)为去雾后x的RGB三通道的灰度值,得到去雾后的视频图像作为输出;

(5)设循环变量j=0,i=i+1,k=k+1采集新一帧图像存入帧存,采集的同时计算gmax、gmin、gmean,并按顺序逐个将像素RGB最小值min(x)同暗通道图中该像素的暗通道值Dark(x)进行比较;如果min(x)<Dark(x),则j=j+1,一帧保存结束后,若j≥ir÷(γ×γ)或k>β×fr,转步骤(7),否则转步骤(6);其中ir为视频分辨率,fr为视频信号每秒的帧数,β为大于0的实数;

(6)从一帧画面的左上角像素开始,逐个像素进行遍历到右下角像素;如果min(x)≥Dark(x),暗通道图中的Dark(x)不变,继续比较下一个像素;如果min(x)<Dark(x),则用min(x)替代暗通道图中的Dark(x),再搜索暗通道图中以x为中心γ×γ正方形范围内的其它像素;对于其中的某个像素y,若min(x)<Dark(y),则以min(x)替换Dark(y),一帧所有像素遍历完成后转步骤(8);

(7)用步骤(3)的方法重新计算该帧图像的暗通道图,k=1;

(8)判断是否需要重新计算大气光,若|gmax-A|≤30或i≤α×fr,转步骤(10),否则转步骤(9);其中fr为视频信号每秒的帧数,α为大于0的实数;

(9)用步骤(2)的方法重新计算此帧图像大气光Anew,A=Anew,i=1;

(10)将A作为此帧图像的大气光;

(11)按照暗通道物理模型,根据大气光和暗通道图像,按步骤(4)的方法进行求解,得到去雾增强后的视频图像作为输出,一帧处理完转步骤(5)继续处理下一帧。

优选的,步骤(3)中,γ越大计算量越大,γ过小会影响去雾效果,根据人眼的视觉特点取γ×γ为3×3。

优选的,步骤(5)中,β越小,暗通道图更新越快,去雾效果越好,但是计算量越大;β越大,暗通道图更新越慢,计算量越小,去雾效果越差,根据人眼的视觉特点取β为1/3。

优选的,步骤(8)中,α越小,大气光更新越快,单帧画面的去雾效果越好,但是视频中越容易会出现闪烁,且计算量越大;α越大,大气光更新越慢,计算量越小,视频中越不会出现闪烁,但单帧画面的去雾效果越差。根据人眼的视觉特点取α为3。

本发明的有益效果为:(1)实现了一种快速视频去雾方法,该方法可以由通用计算机实现,也可以用于DSP、ARM、FPGA、CPLD等嵌入式系统;(2)设置了大气光重新计算的条件,简化计算方法,避免了排序运算,减少了计算量,提高了去雾算法的运行效率;(3)设置了暗通道图重新计算的条件,设计了暗通道图的修正方法,减少了计算量,提高了去雾算法的运行效率。

附图说明

图1为本发明的灰度直方图简化模型示意图。

图2为本发明的3×3个像素示意图。

图3为本发明的大气光计算流程示意图。

图4为本发明的暗通道图计算流程示意图。

具体实施方式

以某型FPGA系统为例,该系统对分辨率为1024×768、帧频为60Hz的视频信号进行处理。计算暗通道图时,以一个像素为中心,对周围3×3的像素进行搜索,α=3、β=1/3。如图3和4所示,一种快速视频去雾方法,包括如下步骤:

(1)采集一帧图像保存入帧存,设置循环变量i=1、k=1;

(2)设一个像素RGB三通道的最小灰度值为min(x),该帧图像中所有像素min(x)的最大、最小、平均值分别为gmax、gmin、gmean,以满足min(x)≥g0的所有像素RGB三通道中的最大灰度值为大气光A;其中

(3)以像素x为中心、周围3×3个像素的min(x)中的最小值为x的暗通道值Dark(x),计算一帧图像所有像素的Dark(x)并保存入另一帧存,以此作为该帧图像的暗通道图;

(4)按照暗通道物理模型,根据步骤(2)得到的大气光和步骤(3)得到的暗通道图进行求解,去雾计算式为:

式中I(x)为像素x在原图中RGB三通道的灰度值,J(x)为去雾后x的RGB三通道的灰度值,得到去雾后的视频图像作为输出;

(5)设循环变量j=0,i=i+1,k=k+1,采集新一帧图像存入帧存,采集的同时计算gmax、gmin、gmean,并按顺序逐个将像素RGB最小值min(x)同暗通道图中该像素的暗通道值Dark(x)进行比较;如果min(x)<Dark(x),则j=j+1,一帧保存结束后,若j≥1024×768÷9或k>20,转步骤(7),否则转步骤(6);

(6)从一帧画面的左上角像素开始,逐个像素进行遍历到右下角像素;如果min(x)≥Dark(x),暗通道图中的Dark(x)不变,继续比较下一个像素;如果min(x)<Dark(x),则用min(x)替代暗通道图中的Dark(x),再搜索暗通道图中以x为中心3×3正方形范围内的其它像素;对于其中的某个像素y,若min(x)<Dark(y),则以min(x)替换Dark(y),一帧所有像素遍历完成后转步骤(8);

(7)用步骤(3)的方法重新计算该帧图像的暗通道图,k=1;

(8)判断是否需要重新计算大气光,若|gmax-A|≤30或i≤180,转步骤(10),否则转步骤(9);

(9)用步骤(2)的方法重新计算此帧图像大气光Anew,A=Anew,i=1;

(10)将A作为此帧图像的大气光;

(11)按照暗通道物理模型,根据大气光和暗通道图像,按步骤(4)的方法进行求解,得到去雾增强后的视频图像作为输出,一帧处理完转步骤(5)继续处理下一帧。

一种快速视频去雾方法,首先对输入视频的一帧图像进行判断,确定其是否需要重新计算大气光和暗通道图。若不需要重新计算大气光,则按照上一帧画面使用的大气光进行去雾处理;若需要重新计算大气光,则按照本专利提出的简化模型计算大气光。若不需要重新计算通道图,则根据本帧画面的灰度对上一帧画面使用的暗通道图进行修正;若需要重新计算暗通道图,则根据本帧画面重新计算暗通道图。

由于视频中相邻帧图像存在一定的相关性,可以将一帧图像的大气光和暗通道图用于其后若干帧的去雾计算以减少计算量。设fr为视频信号每秒的帧数,本专利每隔α×fr帧重新计算一次大气光,每隔β×fr帧重新计算一次暗通道图。α、β为大于0的实数。这两个参数事先选定,α、β越小,大气光和暗通道图更新较快,去雾效果越好,但是计算量大;α、β越大,大气光和暗通道图更新较慢,计算量小。根据人眼的视觉特点可以分别取3和1/3,即最长相隔3秒重新计算大气光,最长相隔1/3秒重新计算暗通道图。定时更新虽然可以减少计算量,但是难以解决视频中大气光或暗通道图发生突变的问题。

设RGB是像素x红绿蓝三通道的颜色分量,一个像素RGB三个分量中的最小值为min(x),一帧图像中所有min(x)的最大、最小、平均值为gmax、gmin、gmean,A为上一帧图像的大气光,以|gmax-A|>30或连续α×fr帧都没有重算大气光为重新计算大气光的条件。为了简化大气光的计算,利用图1中的模型来代替灰度直方图。图1中三角形abc的面积为一帧画面的像素数量,而三角形dbe为abc面积的0.1%,可以求得:

以一帧图像中满足min(x)≥g0的所有像素RGB三通道的最大值为大气光A。大气光的具体求解流程如图3所示。

He算法以像素x为中心,周围γ×γ个像素的min(x)中的最小值为x的暗通道值Dark(x),γ=3时该区域的位置如图2所示。一帧图像所有像素的Dark(x)组成该图像的暗通道图。由于视频信号中相邻帧之间的相关性,相邻帧之间的暗通道图一般区别不大,可以通过对上一帧的暗通道图进行修正得到本帧的暗通道图。在采集一帧画面时,将各个像素RGB依次保存入帧存,同时把像素x的RGB中的最小值min(x)与上一帧的暗通道图中该像素的值Dark(x)比较,若min(x)≥Dark(x),则Dark(x)不需要修正;若min(x)<Dark(x),则以min(x)替换暗通道图中该像素的值Dark(x),同时遍历在暗通道图中以该像素为中心,周围γ×γ个像素。对于该区域中的某个像素y,若min(x)<Dark(y),则以min(x)替换Dark(y)。

设n为一帧图像中满足min(x)<Dark(x)的像素数量,若n较大,说明本帧图像的暗通道图与上一帧的区别较大,应该重新计算暗通道图。设ir为视频的分辨率,以n≥ir/(γ×γ)或连续β×fr帧都没有重算暗通道图为重新计算暗通道图的条件。暗通道图具体求解流程如图4所示。

得到大气光和暗通道图后,通过大气传播模型进行反向求解得到去雾后的一帧图像,对于像素x,去雾计算式为:

式中I(x)为像素x在原图中RGB三通道的灰度值,J(x)为去雾后x的RGB三通道的灰度值。

本发明实现了一种快速视频去雾方法,该方法可以由通用计算机实现,也可以用于DSP、ARM、FPGA、CPLD等嵌入式系统;设置了大气光重新计算的条件,简化计算方法,避免了排序运算,减少了计算量,提高了去雾算法的运行效率;设置了暗通道图重新计算的条件,设计了暗通道图的修正方法,减少了计算量,提高了去雾算法的运行效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值