法律状态公告日
法律状态信息
法律状态
2013-11-20
未缴年费专利权终止 IPC(主分类):H04N9/64 授权公告日:20120523 终止日期:20120928 申请日:20100928
专利权的终止
2012-05-23
授权
授权
2011-03-16
实质审查的生效 IPC(主分类):H04N9/64 申请日:20100928
实质审查的生效
2011-01-19
公开
公开
技术领域
本发明涉及一种消除彩色图像中脉冲噪音的矢量中值滤波的实现方法。
背景技术
针对彩色图像系统的采集和传输过程中可能出现的脉冲噪音,Astola等人提出了矢量中值滤波方法VMF,参见Astola J,Haavisto P,Neuvo Y.VectorMedian Filters.In:Proc.IEEE.1990,78(4):678-689。该方法能够消除该类噪音,也能够避免采用标准中值滤波出现的人工颜色的问题。由于该方法由于具有很好的鲁棒性,目前已经成为彩色图像去噪的基础方法之一。由于经典的矢量中值滤波VMF不能很好的保存原图像的边缘和细节信息,很多改进型矢量中值滤波方法陆续被提出。无论是经典的矢量中值方法VMF还是很多改进型矢量中值滤波方法ACWVDF、RSVMF、AVMF在滤波中都需要计算当前滤波窗口内所有矢量间距离值,之后再根据设计的不同的判断条件从窗口内选择输出值,参见Lukac R.Adaptive color image filtering based on center-weightedvector directional filters,Multidimensional Syst.Signal Processing,2004,15(2):169-196及Lukac R.Adaptive color image filtering basedon center-weighted vector directional filters[J].Syst.Signal Process.2004,15:169-196和Lukac R.Adaptive vector median filtering[J].Pattern Recognition Letters,2003,24(12):I889-1899。以上矢量中值滤波方法的过程即迭代的为移动的每个滤波窗口内每对像素计算矢量距离矩阵和选择输出矢量的操作。计算矢量间距离值的步骤造成了该类滤波方法效率不高、难以满足实时运算需求的缺点。提高滤波窗口内矢量间距离计算是提高该类矢量中值滤波等方法效率的重要途径。
发明内容
为提高彩色图像中的经典矢量滤波方法和其部分扩展方法的运算效率,本发明提供一种针对需要计算每个象素的矢量距离矩阵的矢量中值滤波的快速实现方法。
矢量中值滤波方法(如VMF、ACWVDF、RSVMF、AVMF等)需要计算所有窗口内的矢量间距离值。当滤波窗口大小为m×n,滤波方法要将所有矢量间距离值写入大小为mn×mn的矢量距离矩阵。滤波方法则根据该矩阵和滤波判断条件方法选择输出矢量替换原像素值。原矢量中值滤波方法即迭代的计算移动的每个滤波窗口的矢量距离矩阵和选择输出矢量的操作。本方法在为每个像素计算矢量距离矩阵是无需计算滤波窗口内所有像素间的距离。其值大部分可来自于邻近多个像素对应的矢量距离矩阵当中计算过的矢量距离值,当前矩阵矢量距离值来自三类:
(1)同行左边一个像素的计算过的矢量距离矩阵;
(2)邻近其它像素存储在距离存储矩阵;
(3)重新计算。
其中在滤波窗口内矢量编号排列采用编号从左上方开始,先自上而下再从左至右依次递增编号。
其中每个像素对应的矢量距离矩阵,其元素满足沿对角线对称,对角线元素值为零。
在全图其滤波迭代计算顺序为:从上往下依次每行处理,在每行中采用从左至右的处理顺序。
每个像素计算完矢量距离矩阵后,需将部分距离值填入对应的矢量存储矩阵中,以便邻近的其它像素利用该距离值。
本发明的具体技术方案如下:
本发明提供的一种消除彩色图像中脉冲噪音的矢量中值滤波的实现方法,滤波窗口大小为m×n时,步骤如下:
步骤一:判断当前像素xi,j是否为边缘像素:若是,则采用Di,j(p,q)=||xp-xq||直接计算滤波窗口内所有矢量对xp、xq之间的距离值,之后再转到步骤三;若否,则转入步骤二;
步骤二:计算图像中非边缘像素xi,j对应的矢量距离矩阵Di,j,矢量距离矩阵Di,j中的各元素值即各矢量对xp、xq之间的距离值采用以下其中一种方法获得,其中t1、t2和t3表示不同数据来源类型:
t1:来自同行左边一个像素的计算过的矢量距离矩阵Di-1,j;
t2:与xij邻近其它的其他像素在距离存储矩阵M中的存储矢量距离值;
t3:采用||xp-xq||重新计算矢量距离值;
步骤三:根据像素xi,j对应的矢量距离矩阵Di,j计算替换值yi,j;
步骤四:将量距离矩阵Di,j的部分矢量距离值记入距离存储矩阵M;
步骤五:若计算完每行最后一个像素,则可转入下一行第一个像素并转到步骤一,直到所有像素都计算完毕。
所述大小为m×n的滤波窗口,在滤波窗口内矢量对xp、xq编号排列采用编号从左上方开始,先自上而下再从左至右依次递增编号,m和n同为奇数。
所述大小为m×n的滤波窗口,根据各个像素在滤波窗口{x′l1,...x′mn}内的坐标(u,o),滤波窗口划分为子集S1、S2、S3和S4:
●S1={x′11,x′12,...,x′u,o,...,x′(n-1)(m-1)}其中1≤u≤(m-1)且1≤o≤(n-1)
●S2={x′m1,...,x′mi,...x′m(n-1)}其中1≤u≤(n-1)
●S3={x′1n,...,x′jn,...x′(m-1)n}其中1≤o≤(m-1)
●S4={x′mn}
根据矢量对xp、xq在滤波窗口内所属子集合,采用下表的方法判断采用类型t1、t2或t3来计算矢量距离值。
所述距离存储矩阵M包含了每个像素xi,j对应的Mi,j,当大小为m×n滤波窗口时,存储xi-m+2,j-n-1至xi+m-2,j矩形范围内的所有像素与xi,j的部分矢量距离值,记入Mi,j(1,1)至Mi,j(2m-3,n)。
所述边缘像素为全图中的像素xi,j集合,满足:或
本发明的有益效果:
为提高彩色图像中的经典矢量滤波方法和其部分扩展方法的运算效率,本发明公开针对一类需要计算滤波窗口内所有矢量距离的矢量中值滤波的快速方法。当迭代计算当前像素的矢量距离矩阵的值,该发明记录并提取了其部分自于邻近像素的矢量距离矩阵中计算过的矢量距离值。该新方法能够保持与原方法相同的滤波效果,并能有效减少滤波的计算时间。
附图说明
图1是5×5滤波窗口的像素排列方式和数据来源类型。
图2是5×5滤波窗口的矢量距离数值来源类型表type(p,q)。
图3是5×5滤波窗口的当前像素xi,j对应的距离存储矩阵Mi,j。
图4是5×5滤波窗口且当前位置为(100,100)对应的距离存储矩阵M100,100中每个位置对应的全图坐标位置。
图5是矢量中值滤波快速实现方法的流程图。
具体实施方式
图1是5×5滤波窗口的像素排列方式和数据来源类型。
各矢量滤波方法(如VMF、ACWVDF、RSVMF、AVMF等)虽其判断条件和矢量距离计算的方式有不同,但很多都需计算滤波窗口内的各矢量间距离,即需迭代计算当前位置(i,j)像素对应的矢量距离矩阵Di,j,当滤波窗口大小为m×n时,矢量距离矩阵D大小为mn×mn,Di,j中各元素定义如下:
Di,j(p,q)=||xp-xq||γ (xp,xq∈W)
其中W={x1,...,xmn},||xp-xq||γ表示W内矢量xp与xq的范数距离,且满足:①||xp-xq||γ=||xp-xq||γ;②||xp-xp||γ=0。在滤波过程中滤波窗口迭代的向右移动一次,即在图中从全图坐标为(i,j-1)移动到(i,j)时,新中心像素对应的矢量距离矩阵Di,j中的数据除部分需要从新计算外,其他都可以从Di,j-1和距离存储矩阵M中获得,距离存储矩阵M存放了滤波窗口移动经过的各像素对应得部分矢量距离值。其中Di,j(p,q)表示全图坐标为(i,j)像素的滤波窗口内编号为p和q矢量间距离。设计的滤波窗内的各矢量编号从左上方开始,自上而下每列依次递增编号。如图1中所示的5×5滤波窗口,每格内”/”前数字是对应矢量的编号值。而px、py和qx、qy分别是矢量xp与xq在滤波窗口内的窗口横纵坐标。
为进一步划分矢量距离来源,在任意的m×n的滤波窗口可分割为4个子集合,根据各个像素在滤波窗口{x′11,...,x′mn}内的坐标(u,o),滤波窗口划分为子集S1、S2、S3和S4:
●S1={x′11,x′12,...,x′u,o,...,x′(n-1)(m-1)}其中1≤u≤(m-1)且1≤o≤(n-1)
●S2={x′m1,...,x′mi,...x′m(n-1)}其中1≤u≤(n-1)
●S3={x′1n,...,x′jn,...x′(m-1)n}其中1≤o≤(m-1)
●S4={x′mn}
如图1所示的5×5滤波窗口,子集合S1和S2(对应图中标记为*/s1和*/s2的像素)是m×n滤波窗口的前(n-1)列,子集合S3和S4(对应图中标记为*/s3和*/s3的像素)是滤波窗口的最后一列。
根据两矢量xp和xq所属的子集合,可定义矢量距离值的来源类型,其种类型t1指该值来源于矢量距离矩阵Di,j-1;类型t2指该值需重新计算;类型t3指该值来源于存储历史数据的距离存储矩阵M。
图2表示了在本发明中滤波窗口内每对矢量距离值来源的类型,例如当矢量xp∈S1∪S2且xq∈S1∪S2,距离值直接来源于Di,j-1,即type(p,q)=′t1′;又如当矢量xp∈S3且xq∈S3时,距离值从距离存储矩阵M中获得,即type(p,q)=′t3′。考虑到矢量距离范数的性质(对称性),类型表也是关于对角线对称。
根据以上定义,滤波窗口内每对矢量距离Di,j(p,q)计算方法如下:
type(p,q)=t1
当type(p,q)=t2
type(p,q)=t3
距离存储矩阵M是一个4维矩阵。其中前2维表示的对应的像素在全图中的位置,后2维表示与对应像素左方邻近的(2m-3)×n中某个像素的相对坐标。若当前像素的全图坐标为(i,j),则存储了全图坐标为[i-m+2..i+m-2],[j-n+1...j]范围内的像素与全图坐标为(i,j)的像素的矢量距离值。如图3,若滤波窗口大小为5×5时,则每个像素存储对应的距离存储矩阵M中矢量值大小为7×5,其中(4,5)位置对应全图中的当前像素。若当前像素的全图坐标为(100,100),则在它对应的矩阵M中存储了全图坐标范围为([97,…103],[96,…100])的35个像素与坐标为(100,100)像素的(包括自身)矢量间距离值。坐标为(100,100)像素的距离存储矩阵M中对应图3每个位置的全图坐标如图4。例如图3和图4可知,在全图坐标(100,100)像素的距离存储矩阵M中位置(1,5)记录了全图坐标(97,100)与(100,100)像素的矢量距离值。
根据定义的像素(i,j)对应的矢量距离矩阵Di,j计算方法可知,当计算全图坐标为(98,98)的矢量距离矩阵时,可第一次计算获得全图坐标为([97,…100],[96,…100])范围内20个像素与全图坐标为(100,100)像素的距离值。若将这些值计入全图坐标为(100,100)像素的对应距离存储矩阵坐标为([1,…4],[1,…5])中。当计算全图坐标为(99,98)像素的矢量距离矩阵时,则其中其中需要的坐标为(100,100)的矢量与范围为([97,…,100],[96,…,100])范围内的20个矢量距离值则无需重新计算,只要从坐标为(100,100)像素的距离存储矩阵M中获得即可。
根据以上描述可知,本快速实现方法需要重新计算的矢量间距离包括集合S4与S1∪S2∪S3的各元素间的(nm-1)次和S2与S3之间的n+m-2,共计nm+n+m-3次。原矢量中值滤波方法中的距离矢量矩阵需要计算次数为mn(mn-1)/2次。
通过顺序移动滤波窗口依次对各像素进行滤波。前述方法考虑了全图非边缘像素的矢量距离矩阵的计算,也考虑到图像的边缘像素的矢量距离矩阵得获得方式。进而本快速的实现方法的流程为图5。
步骤S601:判断当前位置是否为超过图像的最后一个像素位置,是则退出程序,否则继续;
步骤S602:判断当前位置是否为边缘像素,是则采用传统矢量距离矩阵的计算方式;
步骤S603:传统方式计算当前像素的矢量距离矩阵,例如在5×5的滤波窗口下,则需计算的矢量距离的次数为300次,转入步骤S609;
步骤S604:若当前像素不是边缘像素,则可以从左边即上一个像素计算过的矢量距离矩阵获得type(p,q)=′t1′的部分矢量距离值;
步骤S605:需重新计算type(p,q)=′t2′的新矢量距离矩阵中的另一部分距离值则;
步骤S606:对于type(p,q)=′t3′的剩下部分,需要从邻近像素的矢量距离存储矩阵M中获得;
步骤S607:将计算出的部分矢量距离填写入该像素对应的矢量距离存储矩阵M中;
步骤S608:根据矢量距离计算的对称性和距离矩阵对角线为零的特性,计算完整的矢量距离矩阵;
步骤S609:根据不同的滤波方法,计算各自条件输出矢量yij;
步骤S610:若当前像素为每行最后一个像素,则向右移动一个像素;回到步骤S601。
机译: 消除信号脉冲中的现象阻尼的方法,一种实现该方法的装置。
机译: 消除信号脉冲中的现象阻尼的方法,一种实现该方法的装置。
机译: v u00ecdeo的编码方法,v u00ecdeo编码器,对v u00ecdeo进行解码的方法,v u00ecdeo解码器可还原位序列的帧。M u00ecdia存储已存储在程序中,通过计算机读取 u00ecvel即可实现一种用于对v u00ecdeo,M u00ecdia存储器进行编码的方法,该方法已存储在计算机读取的程序pass u00ecvel中,以实现对v u00ecdeo进行编码的方法。v u00ecdeo的编码方法,用于消除冗余中的冗余v u00ecdeo的帧,解码v u00ecdeo的方法以恢复输入比特序列的原始图像,以及解码装置以恢复当前帧