发明名称 一种基于条带和相邻度的快速细缝裁剪方法
摘要 一种基于条带和相邻度的快速细缝裁剪方法属于图像领域。它是对快速细缝裁剪方法进行改进,结合相邻度和条带的思想加以约束,使得细缝能够更均匀的分布在图像各个区域,进而得到更令人满意的缩放结果。该方法首先把图像划分若干等间隔条带,然后利用该图像对应的显著性图计算每个条带的平均重要性,根据条带的重要性和整幅图像的目标尺寸通过求解一个带约束条件的最优化问题来得到每个条带的目标尺寸,最后在每个条带中采用结合相邻度的快速细缝裁剪方法去获得目标尺寸图像。本方法在计算速度上要远远优于其他基于细缝裁剪的方法,同时得到的结果图像质量要好于快速细缝裁剪方法,因此,具有一定的应用价值和意义。
申请公布号 CN103208095B 申请公布日期 2016.05.25
申请号 CN201310142222.2 申请日期 2013.04.22
申请人 北京工业大学 发明人 毋立芳;曹连超;郑庆阳
分类号 G06T3/40(2006.01)I 主分类号 G06T3/40(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 刘萍
主权项 一种基于条带和相邻度的快速细缝裁剪方法,其特征在于:该方法具体包括:1)输入一幅大小为W*H的原始图像,并设定其目标尺寸为W*H<sub>T</sub>,W为图像宽度,H为原始图像的高度,H<sub>T</sub>为目标图像的高度;2)将原始图像分成N条等间距水平条带;3)根据原图对应的显著性图计算每一个条带的重要性S<sub>i</sub>;4)根据每个条带的重要性值S<sub>i</sub>以及目标图像的高度H<sub>T</sub>去计算每个条带的目标高度h<sub>i</sub>’;5)根据每个条带的原始高度h和目标高度h<sub>i</sub>’,能够确定每个条带需要去除的细缝数量Num<sub>i</sub>=h<sub>i</sub>’‑h;然后在每个条带中根据相邻度和累加能量搜索要处理的细缝;所述步骤5)具体为:通过删除这些细缝来得到目标尺寸图像,在每个条带搜索细缝的具体步骤如下:①计算像素之间的最优匹配关系:采用现有技术黄华提出的快速细缝裁剪方法通过在相邻列之间最大化像素间匹配边缘的权重和来建立原始图像中像素间的最优匹配关系;在每两列间进行迭代计算来确定列间像素的最优匹配关系,进而去得到整个条带的最优匹配关系矩阵AR<sub>W×h</sub>;②根据像素最优匹配关系计算细缝之间的邻域关系:对于一个高度为h的水平条带,我们需要搜索h条细缝;定义细缝在第k列第m行的像素元素用其细缝标号E<sup>k</sup>(m)标记;另外,我们定义累积邻域关系矩阵AN<sub>h×h</sub>,这个矩阵根据每一列两条细缝元素在重要区域是否相邻进行累积更新;重要区域则通过图像的显著图取平均值作为阈值再进行二值化得到;建立细缝邻域关系矩阵AN的过程从右至左来进行,在最右面一列即k=W,像素的细缝标号参量初始化为:E<sup>W</sup>(m)=m,m=1,2,...h  (3)邻域关系矩阵AN初始化为:AN(x,y)=0,x=1,2,...h y=1,2,...h  (4)进一步根据像素间的最优匹配关系AR按照如下规则更新细缝标号参量E(m)以及邻域关系矩阵AN:E<sup>k</sup>(m+AR(m,k+1))=E<sup>k+1</sup>(m),m=1,2,...h,k=1,2,...W  (5)<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msup><mi>AN</mi><mi>p</mi></msup><mrow><mo>(</mo><msup><mi>E</mi><mi>k</mi></msup><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>,</mo><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo><mo>=</mo><msup><mi>AN</mi><mrow><mi>p</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msup><mi>E</mi><mi>k</mi></msup><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>,</mo><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo><mo>+</mo><mn>1</mn><mo>,</mo><mi>k</mi><mo>=</mo><mi>W</mi><mo>-</mo><mn>1</mn><mo>,</mo><mo>...</mo><mn>1</mn><mo>,</mo><mi>m</mi><mo>=</mo><mn>2</mn><mo>,</mo><mo>...</mo><mi>h</mi></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>AN</mi><mi>p</mi></msup><mrow><mo>(</mo><msup><mi>E</mi><mi>k</mi></msup><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>)</mo><mo>=</mo><msup><mi>AN</mi><mrow><mi>p</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msup><mi>E</mi><mi>k</mi></msup><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>)</mo><mo>+</mo><mn>1</mn><mo>,</mo><mi>k</mi><mo>=</mo><mi>W</mi><mo>-</mo><mn>1</mn><mo>,</mo><mo>...</mo><mn>1</mn><mo>,</mo><mi>m</mi><mo>=</mo><mn>2</mn><mo>,</mo><mo>...</mo><mi>h</mi></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>AN</mi><mi>p</mi></msup><mrow><mo>(</mo><msup><mi>E</mi><mi>k</mi></msup><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>,</mo><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo><mo>=</mo><msup><mi>AN</mi><mrow><mi>p</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msup><mi>E</mi><mi>k</mi></msup><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>,</mo><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo><mo>+</mo><mn>1</mn><mo>,</mo><mi>k</mi><mo>=</mo><mi>W</mi><mo>-</mo><mn>1</mn><mo>,</mo><mo>...</mo><mn>1</mn><mo>,</mo><mi>m</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mi>h</mi><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>AN</mi><mi>p</mi></msup><mrow><mo>(</mo><msup><mi>E</mi><mi>k</mi></msup><mo>(</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>)</mo><mo>=</mo><msup><mi>AN</mi><mrow><mi>p</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msup><mi>E</mi><mi>k</mi></msup><mo>(</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>)</mo><mo>+</mo><mn>1</mn><mo>,</mo><mi>k</mi><mo>=</mo><mi>W</mi><mo>-</mo><mn>1</mn><mo>,</mo><mo>...</mo><mn>1</mn><mo>,</mo><mi>m</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mi>h</mi><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mi>p</mi><mo>=</mo><mrow><mo>(</mo><mi>W</mi><mo>-</mo><mi>k</mi><mo>)</mo></mrow><mo>&times;</mo><mi>h</mi><mo>+</mo><mi>m</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000877974990000021.GIF" wi="1604" he="374" /></maths>式(5)中,AR(m,k)为最优匹配关系矩阵AR中第m行k列位置处的值,E<sup>k</sup>(m)为第m行k列像素的细缝编号值;式(6)中,AN<sup>p</sup>表示更新完第p个像素时邻域关系矩阵AN的值,p=1表示条带最右列第一行的像素;直到更新到第一列最后一个像素元素,我们能够得到最终的邻域关系矩阵AN<sub>h×h</sub>;③计算细缝之间的相邻度Neighborability:相邻度用来表示两个细缝之间相邻的概率,它将用于去除某条细缝后,对其相邻的细缝进行能量加权;对去除的第m条细缝,我们计算其相邻度之和为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>T</mi><mo>_</mo><mi>A</mi><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>h</mi></munderover><mi>A</mi><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>,</mo><mi>n</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000877974990000022.GIF" wi="718" he="134" /></maths>然后,分别计算其他细缝和第m条细缝相邻的概率;第n条细缝和第m条细缝相邻的概率计算如下:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>N</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>b</mi><mi>o</mi><mi>r</mi><mi>a</mi><mi>b</mi><mi>i</mi><mi>l</mi><mi>i</mi><mi>t</mi><mi>y</mi><mrow><mo>(</mo><mi>m</mi><mo>,</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>A</mi><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>,</mo><mi>n</mi><mo>)</mo></mrow></mrow><mrow><mi>T</mi><mo>_</mo><mi>A</mi><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mi>n</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mi>h</mi><mo>,</mo><mi>m</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mi>h</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000877974990000023.GIF" wi="1358" he="135" /></maths>④综合细缝的累积能量及其相邻度搜索要处理的细缝:A.根据最小能量原则去除累积能量最小的细缝m;B.然后对剩下的细缝使用公式(9)来对其累积能量进行更新,<img file="FDA0000877974990000024.GIF" wi="1068" he="79" />式(9)中,AE(n)代表第n条细缝的累积能量,w(n)根据相邻度计算得来,具体定义为:w(n)=C*Neighborability(m,n),n=1,2...h  (10)式(10)中,C是一个常量,取值为1;用来调节相邻度对细缝分布的影响程度;Neighborability(m,n)表示第n条细缝与第m条细缝的相邻度;C.重复步骤A和B,找到全部要去除的Num<sub>i</sub>=h‑h<sub>i</sub>条最优细缝,去除相应的细缝,得到目标高度的水平条带。
地址 100124 北京市朝阳区平乐园100号