主权项 |
一种照片水印自动去除方法,其特征在于,该方法的步骤包括:步骤S1:读取照片;步骤S2:根据预设的水印在照片中的位置和水印的颜色阈值,自动识别水印区域,得到水印边缘信息;步骤S3:使用快速匹配法,对识别出的水印进行去除;其中,步骤S3是以水印边缘上的像素点作为一次去除的单位,重复下面步骤S31~S34,直至所有水印被去除结束:S31:初始化水印区域内所有像素点的优先级的值和标记;S32:根据水印区域内像素点的标记和优先级的值综合排序,选择优先级值最高的像素点作为本次去除的水印像素点;S33:根据纹理合成方法,去除该水印像素点;S34:更新水印区域的信息;所述的步骤S31具有以下步骤:步骤S311:将边界上的点标记为KNOWN,且赋予优先级的值T=0;步骤S312:考察边界上所有标记为KNOWN的点(i,j),i、j为该像素点的横、纵轴坐标,对它的四邻点(i‑1,j)、(i,j‑1)、(i+1,j)、(i,j+1),如果有未被标记为KNOWN的,则以BAND标记,并将其T赋值为1,然后将标记为BAND的点置于一个按T从小到大排列的排序堆中;步骤S313:将剩下的既不是KNOWN也不是BAND的点标记为INSIDE,赋值T=1×106;步骤S33具有以下步骤:步骤S331:计算待去除的像素点的ε领域内的已知像素点Q的权值ω(p,q);令ω(p,q)=dir(p,q)*dis(p,q)*lev(p,q)其中: <mrow> <mi>dir</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>p</mi> <mo>-</mo> <mi>q</mi> </mrow> <mrow> <mo>|</mo> <mo>|</mo> <mi>p</mi> <mo>-</mo> <mi>q</mi> <mo>|</mo> <mo>|</mo> </mrow> </mfrac> <mo>*</mo> <mi>N</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>dis</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <msubsup> <mi>d</mi> <mn>0</mn> <mn>2</mn> </msubsup> <msup> <mrow> <mo>|</mo> <mo>|</mo> <mi>p</mi> <mo>-</mo> <mi>q</mi> <mo>|</mo> <mo>|</mo> </mrow> <mn>2</mn> </msup> </mfrac> </mrow> <mrow> <mi>lev</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <msub> <mi>T</mi> <mn>0</mn> </msub> <mrow> <mn>1</mn> <mo>+</mo> <mo>|</mo> <mi>T</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>T</mi> <mrow> <mo>(</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>|</mo> </mrow> </mfrac> </mrow>其中,p、q表示像素点P、Q的灰度值,方向参数dir(p,q)保证了该像素点的主要贡献在于接近法线的方向上,即N=▽T,也就是说,接近快速匹配法信息传播方向的方向参数要比距离传播方向较远的像素点的方向参数取值大;这里的d0和T0为距离值和优先度值得初始值,在这里设为1;dis(p,q)表示像素点P、Q的几何距离,保证离像素点P远的像素对像素点P的新的像素值的贡献少;lev(p,q)表示级别设置距离,保证离像素P点近的像素对像素P的新的像素值的贡献多;N(p)为像素点P处的优先级的值T的梯度值;T(p)和T(q)分别表示像素点P、Q的优先级的值;步骤S332:待去除的水印像素点P被去除得到的新的像素值为: <mrow> <mi>I</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msub> <mi>Σ</mi> <mrow> <mi>q</mi> <mo>∈</mo> <msub> <mi>B</mi> <mi>ϵ</mi> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </msub> <mi>ω</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>[</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>+</mo> <mo>▿</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>q</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mi>p</mi> <mo>-</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>]</mo> </mrow> <mrow> <msub> <mi>Σ</mi> <mrow> <mi>q</mi> <mo>∈</mo> <msub> <mi>B</mi> <mi>ϵ</mi> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>)</mo> </mrow> </mrow> </msub> <mi>ω</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <mi>q</mi> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>其中,▽I(q)为q的梯度值,ω(p,q)是步骤S1中的权值分布函数,Bε(p)是点P周围的距离为ε的点的集合。 |