发明名称 一种基于方向的色平面插值方法
摘要 本发明公开了一种基于方向的色平面插值方法,其特征在于,本发明的基本过程为:以待插值点为中心,取7x7的方块区域,分别计算x,y,x‑y,y‑x方向的梯度;将360度分为24个区域,根据计算的梯度值,估计出待插值点在该色平面中的方向,并将其映到24个区域中某一个区域;然后根据方向,计算方向直线在图像栅格线上交点的位置,然后用线性插值法计算出交点的数值,最后利用交点的数值,采用加权法计算出色平面中所需插值点的像素值。本发明把边缘的方向细分为24个(或12对),提高方向的精细程度;采用两次插值,先用线性插值计算方向直线上点的值,再用加权插值计算待插值点的值,提高了所计算像素值的准确性。本发明更有效地恢复和保持图像中的细节,图像更清晰,分辨率更高。
申请公布号 CN103236036B 申请公布日期 2016.09.14
申请号 CN201310108828.4 申请日期 2013.04.01
申请人 北京开明智达科技有限责任公司深圳分公司 发明人 林金龙;朱健吾
分类号 G06T5/00(2006.01)I;G06T7/00(2006.01)I 主分类号 G06T5/00(2006.01)I
代理机构 深圳市远航专利商标事务所(普通合伙) 44276 代理人 田志远
主权项 一种基于方向的色平面插值方法,其特征在于,包括以下步骤:(1)以待插值点为中心,取7x7的方块区域,分别计算x,y,x‑y,y‑x方向的梯度,计算方式如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow><msub><mi>d</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mo>-</mo><mn>1</mn></mrow><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mrow><mi>l</mi><mo>=</mo><mo>-</mo><mn>1</mn></mrow><mrow><mi>l</mi><mo>=</mo><mn>1</mn></mrow></munderover><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mn>2</mn><mi>k</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mn>2</mn><mi>l</mi></mrow><mo>)</mo><mo>-</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mn>2</mn><mrow><mo>(</mo><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mn>2</mn><mi>l</mi></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mo>-</mo><mn>1</mn></mrow><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mrow><mi>l</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mrow><mi>l</mi><mo>=</mo><mn>1</mn></mrow></munderover><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mn>2</mn><mi>k</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>2</mn><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo><mo>-</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mn>2</mn><mrow><mo>(</mo><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>,</mo><mi>j</mi><mo>+</mo><mn>2</mn><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FSB0000154515980000014.GIF" wi="1252" he="276" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow><msub><mi>d</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mo>-</mo><mn>1</mn></mrow><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mrow><mi>l</mi><mo>=</mo><mo>-</mo><mn>1</mn></mrow><mrow><mi>l</mi><mo>=</mo><mn>1</mn></mrow></munderover><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mn>2</mn><mi>k</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>2</mn><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo><mo>-</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mn>2</mn><mrow><mo>(</mo><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>,</mo><mi>j</mi><mo>+</mo><mn>2</mn><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mrow><mi>l</mi><mo>=</mo><mo>-</mo><mn>1</mn></mrow><mrow><mi>l</mi><mo>=</mo><mn>1</mn></mrow></munderover><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mn>2</mn><mi>k</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mn>2</mn><mi>l</mi></mrow><mo>)</mo><mo>-</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mn>2</mn><mrow><mo>(</mo><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mn>2</mn><mi>l</mi></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FSB0000154515980000013.GIF" wi="1253" he="275" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow><msub><mi>d</mi><mrow><mi>x</mi><mo>-</mo><mi>y</mi></mrow></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mrow><mi>k</mi><mo>=</mo><mn>2</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mrow><mi>l</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mrow><mi>l</mi><mo>=</mo><mn>2</mn></mrow></munderover><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mi>k</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>l</mi></mrow><mo>)</mo><mo>-</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mi>l</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mrow><mi>k</mi><mo>=</mo><mn>2</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mrow><mi>l</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mrow><mi>l</mi><mo>=</mo><mn>2</mn></mrow></munderover><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mi>k</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>l</mi></mrow><mo>)</mo><mo>-</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mi>l</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FSB0000154515980000012.GIF" wi="1108" he="279" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><msub><mi>d</mi><mrow><mi>y</mi><mo>-</mo><mi>x</mi></mrow></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mo>-</mo><mn>3</mn></mrow><mrow><mi>k</mi><mo>-</mo><mn>2</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mrow><mi>l</mi><mo>=</mo><mn>3</mn></mrow><mrow><mi>I</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow></munderover><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mi>k</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>l</mi></mrow><mo>)</mo><mo>-</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mrow><mi>k</mi><mo>=</mo><mn>3</mn></mrow></munderover><munderover><mo>&Sigma;</mo><mrow><mi>l</mi><mo>=</mo><mn>2</mn></mrow><mrow><mi>l</mi><mo>=</mo><mo>-</mo><mn>3</mn></mrow></munderover><mi>a</mi><mi>b</mi><mi>s</mi><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mi>k</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>l</mi></mrow><mo>)</mo><mo>-</mo><mi>I</mi><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr></mtable><mo>;</mo></mrow>]]></math><img file="FSB0000154515980000011.GIF" wi="1132" he="277" /></maths>(2)将360度分为24个区域,根据(1)中计算的梯度,估计图像中待插点在色平面中的方向,并映到24个区域中某一个区域;(3)根据方向,计算方向直线在图像栅格线上交点的位置;(4)用线性插值法计算出交点的数值,计算方向线与图像栅格的交点时,方向线的区域角度从区域1到12,分别以0,15,30,45,60,75,90,105,120,135,150,165度确定方向直线,k为所计算的方向直线,则用单位长度表示像素之间的距离,用方向直线所在区域对应的角计算k与栅格的交点p1,p2,p3,p1’,p2’,p3’与最近的两个有数值的像素之间的距离;(5)利用交点的数值,采用加权法计算出所需插值点的像素值。
地址 518000 广东省深圳市宝安区西乡街道鹤州恒丰工业城C6栋综合楼1804-1