发明名称 一种邮政分拣系统所获取图像的处理方法
摘要 本发明公开了一种邮政分拣系统所获取图像的处理方法,该图像处理方法的步骤是:S1、将小像素透射多信息融合高速安检系统所获取的图像采用正交变换的方法,得到变换域系数阵列;S2、图像的几何变换处理;S3、图像的正交变换处理;S4、图像增强处理。本发明的邮政分拣系统所获取图像的处理方法,实现了旅客行包的图形图像处理软件系统。可在双显示器上显示出旅客行包的黑白图像和彩色图像,并包括图形的边缘增强、图形放大、图形局部放大、有机物剔出、无机物剔出、黑白图像反转、伪彩色图像、图像增暗、图像增亮、危险品报警等功能;实现细化分析、区域分析及特殊图像处理等数学模型;提高物质识别的准确性。
申请公布号 CN106295664A 申请公布日期 2017.01.04
申请号 CN201610645328.8 申请日期 2016.08.02
申请人 沈阳地泰检测设备有限公司 发明人 原培新;代凤祥;谭俊;原玥
分类号 G06K9/54(2006.01)I 主分类号 G06K9/54(2006.01)I
代理机构 代理人
主权项 一种邮政分拣系统所获取图像的处理方法,其特征在于:该邮政分拣系统所获取图像的处理方法的步骤是:S1、将邮政分拣系统所获取图像采用正交变换的方法,得到变换域系数阵列;A1、用灰度直方图对图像进行处理,选择图像某一灰度级D,然后定义一条轮廓线,该轮廓线连接了图像上所有具有灰度级D的点;所得到的轮廓线形成了包围灰度级大于等于D的区域的封闭曲线;将一幅连续图像中被具有灰度级D的所有轮廓线包围的面积称为该图像的阈值面积函数,直方图定义为:<maths num="0001"><math><![CDATA[<mrow><mi>H</mi><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>lim</mi><mrow><mi>&Delta;</mi><mi>D</mi><mo>&RightArrow;</mo><mn>0</mn></mrow></munder><mfrac><mrow><mi>A</mi><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>-</mo><mi>A</mi><mrow><mo>(</mo><mi>D</mi><mo>+</mo><mi>&Delta;</mi><mi>D</mi><mo>)</mo></mrow></mrow><mrow><mi>&Delta;</mi><mi>D</mi></mrow></mfrac><mo>=</mo><mo>-</mo><mfrac><mi>d</mi><mrow><mi>d</mi><mi>D</mi></mrow></mfrac><mi>A</mi><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000011.GIF" wi="959" he="77" /></maths>将图像看成是一个二维的随机变量,这面积函数相当于其累积分布函数,而灰度直方图相当于其概率密度函数;对于离散函数,我们固定ΔD为1,则上式变为:H(D)=A(D)‑A(D+1)     (2)A2、灰度的线性变换将图像中所有的点的灰度按照线性灰度函数进行变换;该线性灰度变换函数f(x)是一个一维线性函数:f(x)=fA·x+fB     (3)灰度变换方程为:D<sub>B</sub>=f(D<sub>A</sub>)=fA·D<sub>A</sub>+fB    (5)式中参数fA为线性函数的斜率,fB是线性函数在y轴的截距,D<sub>A</sub>表示输入图像的灰度,D<sub>B</sub>表示输出图像的灰度;A3、灰度的阈值变换采用灰度的阈值变换将一幅灰度图像转换成黑白二值图像;灰度的阈值变换的变换函数表达式:<maths num="0002"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>x</mi><mo>&lt;</mo><mi>T</mi></mrow></mtd></mtr><mtr><mtd><mn>255</mn></mtd><mtd><mrow><mi>x</mi><mo>&GreaterEqual;</mo><mi>T</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000012.GIF" wi="1185" he="136" /></maths>T是指定的阈值;A4、采用灰度拉伸的方法控制输出灰度参数的分布,有选择地拉伸某段灰度区间以改善输出图像;灰度拉伸是分段进行线性变换的函数,其表达式为:<maths num="0003"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mfrac><msub><mi>y</mi><mn>1</mn></msub><msub><mi>x</mi><mn>1</mn></msub></mfrac><mi>x</mi></mrow></mtd><mtd><mrow><mi>x</mi><mo>&lt;</mo><msub><mi>x</mi><mn>1</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><mfrac><mrow><msub><mi>y</mi><mi>2</mi></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub></mrow><mrow><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><msub><mi>x</mi><mi>1</mi></msub></mrow></mfrac><mrow><mo>(</mo><mi>x</mi><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>y</mi><mn>1</mn></msub></mrow></mtd><mtd><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>&le;</mo><mi>x</mi><mo>&le;</mo><msub><mi>x</mi><mn>2</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><mfrac><mrow><mn>255</mn><mo>-</mo><msub><mi>y</mi><mn>2</mn></msub></mrow><mrow><mn>255</mn><mo>-</mo><msub><mi>x</mi><mn>2</mn></msub></mrow></mfrac><mrow><mo>(</mo><mi>x</mi><mo>-</mo><msub><mi>x</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>y</mi><mn>2</mn></msub></mrow></mtd><mtd><mrow><mi>x</mi><mo>&gt;</mo><msub><mi>x</mi><mn>2</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000021.GIF" wi="1481" he="489" /></maths>A5、灰度均衡,通过点运算使输入图像转换为在每一灰度级上都有相同的像素点数的输入图像(即输出的灰度参数是平的);按照图像的概率密度函数(归一化到单位面积的直方图)的定义:<maths num="0004"><math><![CDATA[<mrow><mi>p</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><msub><mi>A</mi><mn>0</mn></msub></mfrac><mi>H</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000022.GIF" wi="903" he="119" /></maths>其中H(x)为直方图,A<sub>0</sub>为图像的面积;设转换前图像的概率密度函数为p<sub>r</sub>(r),转换后的图像的概率密度函数为p<sub>s</sub>(s),转换函数为s=f(r);由概率知识我们可以得到:<maths num="0005"><math><![CDATA[<mrow><msub><mi>p</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>p</mi><mi>r</mi></msub><mrow><mo>(</mo><mi>r</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mfrac><mrow><mi>d</mi><mi>r</mi></mrow><mrow><mi>d</mi><mi>s</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000023.GIF" wi="911" he="110" /></maths>这样,如果想使转换后图像的概率密度函数为1(即直方图为平的),则必须满足:<maths num="0006"><math><![CDATA[<mrow><msub><mi>p</mi><mi>r</mi></msub><mrow><mo>(</mo><mi>r</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>d</mi><mi>s</mi></mrow><mrow><mi>d</mi><mi>r</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000024.GIF" wi="918" he="110" /></maths>等式两边对r积分,可得:<maths num="0007"><math><![CDATA[<mrow><mi>s</mi><mo>=</mo><mi>f</mi><mrow><mo>(</mo><mi>r</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mo>&Integral;</mo><mn>0</mn><mi>r</mi></msubsup><msub><mi>p</mi><mi>r</mi></msub><mrow><mo>(</mo><mi>&mu;</mi><mo>)</mo></mrow><mi>d</mi><mi>&mu;</mi><mo>=</mo><mfrac><mn>1</mn><msub><mi>A</mi><mn>0</mn></msub></mfrac><msubsup><mo>&Integral;</mo><mn>0</mn><mi>r</mi></msubsup><mi>H</mi><mrow><mo>(</mo><mi>&mu;</mi><mo>)</mo></mrow><mi>d</mi><mi>&mu;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000025.GIF" wi="1077" he="120" /></maths>该转换公式被称为图像的累积分布函数;上面的公式是被归一化后推导的,对于没有归一化的情况,只要乘以最大灰度值(D<sub>max</sub>,对于灰度图就是255)即可;灰度均衡的转换公式为:<maths num="0008"><math><![CDATA[<mrow><msub><mi>D</mi><mi>B</mi></msub><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>D</mi><mi>A</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>D</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><msub><mi>A</mi><mn>0</mn></msub></mfrac><msubsup><mo>&Integral;</mo><mn>0</mn><msub><mi>D</mi><mi>A</mi></msub></msubsup><mi>H</mi><mrow><mo>(</mo><mi>&mu;</mi><mo>)</mo></mrow><mi>d</mi><mi>&mu;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000026.GIF" wi="1145" he="121" /></maths>对于离散图像,转换公式为:<maths num="0009"><math><![CDATA[<mrow><msub><mi>D</mi><mi>B</mi></msub><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>D</mi><mi>A</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>D</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><msub><mi>A</mi><mn>0</mn></msub></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><msub><mi>D</mi><mi>A</mi></msub></munderover><msub><mi>H</mi><mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000031.GIF" wi="1106" he="127" /></maths>式中H<sub>i</sub>为第i级灰度的像素的个数;S2、图像的几何变换处理B1、图像的平移,将图像中所有的点都按照指定的平移量水平垂直移动;如图像中两个任意点x1和x2的关系用矩阵表示如下:<maths num="0010"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>1</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mi>t</mi><mi>x</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mi>t</mi><mi>y</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>12</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000032.GIF" wi="641" he="212" /></maths>对该矩阵求逆,可以得到逆变换:<img file="FSA0000133246090000033.GIF" wi="485" he="211" />即<img file="FSA0000133246090000034.GIF" wi="505" he="135" />这样,平移后的图像上的每一点都可以在原图像中找到对应点;B2、图像的镜像变换设图像高度为lHeight,宽度为lWidth;原图中(x0,y0)经过水平镜向后坐标将变为(lWidth‑x0,y0),其矩阵表达式为:<maths num="0011"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>1</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>14</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000035.GIF" wi="1157" he="212" /></maths>逆运算矩阵表达式为:<img file="FSA0000133246090000036.GIF" wi="570" he="211" />即<img file="FSA0000133246090000037.GIF" wi="624" he="135" />同样,(x0,y0)经过垂直镜向后坐标将变为(x0,lHeight‑y0),其矩阵表达式为:<maths num="0012"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>1</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>16</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000038.GIF" wi="1149" he="211" /></maths>其逆矩阵表达式为:<img file="FSA0000133246090000041.GIF" wi="588" he="212" />即<img file="FSA0000133246090000042.GIF" wi="562" he="136" />B3、图像的转置将图像的x坐标和y坐标互换;此变换将是图像的高度和宽度互换;其变换矩阵表达式:<maths num="0013"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>1</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>18</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000043.GIF" wi="1164" he="210" /></maths>它的逆矩阵变换表达式为:<img file="FSA0000133246090000044.GIF" wi="438" he="211" />即<img file="FSA0000133246090000045.GIF" wi="763" he="136" />B4、图像的缩放假设图像X轴方向缩放比率为fx,Y轴方向缩放比率是fy,那么,原图中点(x0,y0)对应与新图中的点(x1,y1)的转换矩阵为:<maths num="0014"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>1</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>f</mi><mi>x</mi></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>f</mi><mi>y</mi></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>20</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000046.GIF" wi="1181" he="211" /></maths>它的逆运算表达式为:<maths num="0015"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>x</mi><mn>0</mn><mo>=</mo><mfrac><mrow><mi>x</mi><mn>1</mn></mrow><mrow><mi>f</mi><mi>x</mi></mrow></mfrac></mrow></mtd></mtr><mtr><mtd><mrow><mi>y</mi><mn>0</mn><mo>=</mo><mfrac><mrow><mi>y</mi><mn>1</mn></mrow><mrow><mi>f</mi><mi>y</mi></mrow></mfrac></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>21</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000047.GIF" wi="1056" he="272" /></maths>如果fx=fy=0.5时,图像将被缩小一半;此时,缩小后图像中的(0,0)像素将对应原图中的(0,0)像素;图像中的(0,1)像素对应于原图中的(0,2)像素;(1,0)像素对应于原图中的(2,0)像素,依此类推;在原图基础上,每行隔一个像素取一点,每个以行进行操作;同理,当fx=fy=2时,图像将放大2倍;实际是将原图每行中的像素重复取值一遍,然后每行重复一次;依此类推;B5、图像的旋转在旋转前:<maths num="0016"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>x</mi><mn>0</mn><mo>=</mo><mi>r</mi><mi> </mi><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&alpha;</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>y</mi><mn>0</mn><mo>=</mo><mi>r</mi><mi> </mi><mi>sin</mi><mrow><mo>(</mo><mi>&alpha;</mi><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>22</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000051.GIF" wi="1102" he="135" /></maths>在旋转后写成矩阵表达式:<maths num="0017"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>1</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>23</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000052.GIF" wi="1175" he="212" /></maths>其逆运算如下:<img file="FSA0000133246090000053.GIF" wi="1119" he="211" />上述旋转是绕坐标轴原点(0,0)进行的,如果是绕一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后平移回新的坐标原点;两种坐标系的坐标变换表达式为:<maths num="0018"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>I</mi><mi>I</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>I</mi><mi>I</mi></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mi>a</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mi>b</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>x</mi><mi>I</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>I</mi></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>25</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000054.GIF" wi="1107" he="213" /></maths>其逆变换矩阵表达式为:<maths num="0019"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>x</mi><mi>I</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>I</mi></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>a</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mi>b</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>I</mi><mi>I</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>I</mi><mi>I</mi></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>26</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000055.GIF" wi="1070" he="213" /></maths>假设图像未旋转时中心坐标为(a,b),旋转后中心坐标为(c,d),(在新的坐标系下,以旋转后新图像左上角为原点),则旋转后变换矩阵表达式为:<maths num="0020"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>1</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>c</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mi>d</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><msubsup><mn>1</mn><mrow><mi>I</mi><mi>I</mi></mrow><mo>&prime;</mo></msubsup></mtd></mtr><mtr><mtd><mrow><mi>y</mi><msubsup><mn>1</mn><mrow><mi>I</mi><mi>I</mi></mrow><mo>&prime;</mo></msubsup></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>c</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mi>d</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><msub><mn>1</mn><mrow><mi>I</mi><mi>I</mi></mrow></msub></mtd></mtr><mtr><mtd><mrow><mi>y</mi><msub><mn>1</mn><mrow><mi>I</mi><mi>I</mi></mrow></msub></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></mtd></mtr><mtr><mtd><mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>c</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mi>d</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>sin</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mi>sin</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>cos</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mi>a</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mi>b</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>27</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000056.GIF" wi="1762" he="469" /></maths>其逆变换矩阵表达式:<maths num="0021"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>a</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mi>b</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>-</mo><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>cos</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>c</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mi>d</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>1</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>28</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000061.GIF" wi="1387" he="214" /></maths>即<maths num="0022"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi><mn>0</mn></mtd></mtr><mtr><mtd><mi>y</mi><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>-</mo><mi>c</mi><mi> </mi><mi>cos</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>-</mo><mi>d</mi><mi> </mi><mi>sin</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>a</mi></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>cos</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>c</mi><mi> </mi><mi>sin</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>-</mo><mi>d</mi><mi> </mi><mi>cos</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>b</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>29</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000062.GIF" wi="1435" he="212" /></maths>因此<maths num="0023"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>x</mi><mn>0</mn><mo>=</mo><mi>x</mi><mn>1</mn><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>y</mi><mn>1</mn><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>-</mo><mi>c</mi><mi>s</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>-</mo><mi>d</mi><mi>sin</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>a</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>y</mi><mn>0</mn><mo>=</mo><mo>-</mo><mi>x</mi><mn>1</mn><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>y</mi><mn>1</mn><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>c</mi><mi>sin</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>-</mo><mi>d</mi><mi>cos</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>b</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>30</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000063.GIF" wi="1371" he="136" /></maths>根据上面的转换公式,我们可以方便的编写出实现图像旋转的函数;首先计算出公式中需要的几个参数:a,b,c,d和旋转后新图像的高、宽度;现在已知图像的原始高度为lHeight,宽度为lWidth,以图像中心为坐标系原点,则原始图像四个角的坐标分别为<maths num="0024"><math><![CDATA[<mrow><mo>(</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>,</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>)</mo><mo>,</mo><mo>(</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>,</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>)</mo></mrow>]]></math><img file="FSA0000133246090000064.GIF" wi="1071" he="127" /></maths><maths num="0025"><math><![CDATA[<mrow><mo>(</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>,</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>)</mo><mo>,</mo><mo>(</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>,</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>)</mo></mrow>]]></math><img file="FSA0000133246090000065.GIF" wi="1165" he="130" /></maths>按照旋转公式,在旋转后的新图中,这四个点的坐标(根据上面的公式)为:<maths num="0026"><math><![CDATA[<mrow><mo>(</mo><mi>f</mi><mi>D</mi><mi>s</mi><mi>t</mi><mi>X</mi><mn>1</mn><mo>,</mo><mi>f</mi><mi>D</mi><mi>s</mi><mi>t</mi><mi>Y</mi><mn>1</mn><mo>)</mo><mo>=</mo><mo>(</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>cos</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>+</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>,</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>+</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>cos</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>)</mo></mrow>]]></math><img file="FSA0000133246090000066.GIF" wi="1672" he="131" /></maths><maths num="0027"><math><![CDATA[<mrow><mo>(</mo><mi>f</mi><mi>D</mi><mi>s</mi><mi>t</mi><mi>X</mi><mn>1</mn><mo>,</mo><mi>f</mi><mi>D</mi><mi>s</mi><mi>t</mi><mi>Y</mi><mn>1</mn><mo>)</mo><mo>=</mo><mo>(</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>cos</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>+</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>,</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>+</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>cos</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>)</mo></mrow>]]></math><img file="FSA0000133246090000067.GIF" wi="1675" he="133" /></maths><maths num="0028"><math><![CDATA[<mrow><mo>(</mo><mi>f</mi><mi>D</mi><mi>s</mi><mi>t</mi><mi>X</mi><mn>1</mn><mo>,</mo><mi>f</mi><mi>D</mi><mi>s</mi><mi>t</mi><mi>Y</mi><mn>1</mn><mo>)</mo><mo>=</mo><mo>(</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>cos</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>,</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>cos</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>)</mo></mrow>]]></math><img file="FSA0000133246090000068.GIF" wi="1674" he="133" /></maths><maths num="0029"><math><![CDATA[<mrow><mo>(</mo><mi>f</mi><mi>D</mi><mi>s</mi><mi>t</mi><mi>X</mi><mn>1</mn><mo>,</mo><mi>f</mi><mi>D</mi><mi>s</mi><mi>t</mi><mi>Y</mi><mn>1</mn><mo>)</mo><mo>=</mo><mo>(</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>cos</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>,</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>-</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mi>cos</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>)</mo></mrow>]]></math><img file="FSA0000133246090000069.GIF" wi="1709" he="136" /></maths>则新图像的宽度lNewWidth和高度lNewHeight为:lNewWidth=max(|fDstX4‑fDstx1|,|fDstX3‑fDstX2|)lNewHeight=max(|fDstY4‑fDstY1|,|fDstY3‑fDstY2|)令<maths num="0030"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mi>f</mi><mn>1</mn><mo>=</mo><mo>-</mo><mi>c</mi><mi>o</mi><mi>s</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>-</mo><mi>d</mi><mi> </mi><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>+</mo><mi>a</mi></mtd></mtr><mtr><mtd><mi>f</mi><mn>2</mn><mo>=</mo><mi>c</mi><mi> </mi><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>-</mo><mi>d</mi><mi> </mi><mi>c</mi><mi>o</mi><mi>s</mi><mo>(</mo><mi>&theta;</mi><mo>)</mo><mo>+</mo><mi>b</mi></mtd></mtr></mtable></mfenced>]]></math><img file="FSA0000133246090000071.GIF" wi="556" he="134" /></maths>因为<maths num="0031"><math><![CDATA[<mrow><mi>a</mi><mo>=</mo><mfrac><mrow><mi>l</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>,</mo><mi>b</mi><mo>=</mo><mfrac><mrow><mi>l</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>,</mo></mrow>]]></math><img file="FSA0000133246090000072.GIF" wi="665" he="110" /></maths><maths num="0032"><math><![CDATA[<mrow><mi>c</mi><mo>=</mo><mfrac><mrow><mi>l</mi><mi>N</mi><mi>e</mi><mi>w</mi><mi>W</mi><mi>i</mi><mi>d</mi><mi>t</mi><mi>h</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac><mo>,</mo><mi>d</mi><mo>=</mo><mfrac><mrow><mi>l</mi><mi>N</mi><mi>e</mi><mi>w</mi><mi>H</mi><mi>e</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></mfrac></mrow>]]></math><img file="FSA0000133246090000073.GIF" wi="813" he="109" /></maths>所以<img file="FSA0000133246090000074.GIF" wi="1307" he="250" />则<maths num="0033"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>x</mi><mn>0</mn><mo>=</mo><mi>x</mi><mi>l</mi><mi> </mi><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>y</mi><mi>l</mi><mi> </mi><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>f</mi><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mi>y</mi><mn>0</mn><mo>=</mo><mi>x</mi><mi>l</mi><mi> </mi><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>y</mi><mi>l</mi><mi> </mi><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>+</mo><mi>f</mi><mn>2</mn></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>31</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000075.GIF" wi="1384" he="135" /></maths>S3、图像的正交变换处理采用沃尔什变换法对图像进行正交变换;S4、图像增强处理空间域的图像增强用下面的数学运算表达式来表示:g(x,y)=f(x,y)·h(x,y)      (36)式中f(x,y)是处理前的图像,g(x,y)表示处理后的图像,h(x,y)表示空间处理函数;在图像的某种变换中(通常是频率域中)对图像的变换值进行某种运算处理,然后变换回空间域;数学描述如下:<img file="FSA0000133246090000076.GIF" wi="963" he="71" />G(μ,v)=H(μ,v)·F(μ,v)             (33)<img file="FSA0000133246090000077.GIF" wi="973" he="70" />在式中,<img file="FSA0000133246090000078.GIF" wi="95" he="65" />表示某种频域的正变换,<img file="FSA0000133246090000079.GIF" wi="133" he="63" />表示该种频域的反变换;C1、图像的平滑处理采用低通滤波法来减少噪声;C2、图像的锐化处理采用图像消除模糊算法进行图像的锐化处理,使变模糊的图像变得更加清晰;设图像为f(x,y),f(x,y)在点(x,y)处的梯度矢量<maths num="0034"><math><![CDATA[<mrow><mover><mi>G</mi><mo>&RightArrow;</mo></mover><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&rsqb;</mo><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mfrac><mrow><mo>&part;</mo><mi>f</mi></mrow><mrow><mo>&part;</mo><mi>x</mi></mrow></mfrac></mtd></mtr><mtr><mtd><mfrac><mrow><mo>&part;</mo><mi>f</mi></mrow><mrow><mo>&part;</mo><mi>y</mi></mrow></mfrac></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>35</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000081.GIF" wi="1192" he="245" /></maths>我们知道梯度的方向是在函数f(x,y)最大变化率方向上,且其幅值为:<maths num="0035"><math><![CDATA[<mrow><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&rsqb;</mo><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><mfrac><mrow><mo>&part;</mo><mi>f</mi></mrow><mrow><mo>&part;</mo><mi>x</mi></mrow></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mfrac><mrow><mo>&part;</mo><mi>f</mi></mrow><mrow><mo>&part;</mo><mi>y</mi></mrow></mfrac><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>36</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000082.GIF" wi="1228" he="160" /></maths>由此,我们得出下列结论:梯度的数值就是f(x,y)在其变化率方向上的单位距离所增加的量;对于离散数字图像,上式可以写为:<maths num="0036"><math><![CDATA[<mrow><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>&rsqb;</mo><mo>=</mo><msqrt><mrow><msup><mrow><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>&rsqb;</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>&rsqb;</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>37</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000083.GIF" wi="1346" he="79" /></maths>为了方便起见,采用近似计算公式:<maths num="0037"><math><![CDATA[<mrow><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>&rsqb;</mo><mo>&cong;</mo><mo>|</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>|</mo><mo>+</mo><mo>|</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mi>f</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>|</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>38</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000084.GIF" wi="1327" he="69" /></maths>在图像锐化过程中,图像变化缓慢的地方梯度很小,图像显得很暗,给出一个阈值Δ,如果G[f(x,y)]小于该阈值,则图像保持原灰度值不变;如果大于或等于阈值,则赋值为G[f(x,y)];用公式表示如下:<maths num="0038"><math><![CDATA[<mrow><mi>g</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>)</mo></mrow></mtd><mtd><mrow><mo>(</mo><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>&rsqb;</mo><mo>&GreaterEqual;</mo><mi>&Delta;</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>&rsqb;</mo><mo>&lt;</mo><mi>&Delta;</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>39</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000085.GIF" wi="1241" he="140" /></maths>如果以L<sub>a</sub>表示一个固定的灰度值,上式可以写成:<maths num="0039"><math><![CDATA[<mrow><mi>g</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><msub><mi>L</mi><mi>a</mi></msub></mtd><mtd><mrow><mo>(</mo><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>&rsqb;</mo><mo>&GreaterEqual;</mo><mi>&Delta;</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>&rsqb;</mo><mo>&lt;</mo><mi>&Delta;</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>40</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000086.GIF" wi="1241" he="138" /></maths>在进行图像增强时,我们可以使图像有一个固定背景的灰度值L<sub>b</sub>,以突出边缘灰度的变换,变换公式如下:<maths num="0040"><math><![CDATA[<mrow><mi>g</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&rsqb;</mo></mrow></mtd><mtd><mrow><mo>(</mo><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>&rsqb;</mo><mo>&GreaterEqual;</mo><mi>&Delta;</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>L</mi><mi>b</mi></msub></mtd><mtd><mrow><mo>(</mo><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>&rsqb;</mo><mo>&lt;</mo><mi>&Delta;</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>41</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000087.GIF" wi="1249" he="141" /></maths>只保留两个灰度值时,公式就变为:<maths num="0041"><math><![CDATA[<mrow><mi>g</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><msub><mi>L</mi><mi>a</mi></msub></mtd><mtd><mrow><mo>(</mo><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>&rsqb;</mo><mo>&GreaterEqual;</mo><mi>&Delta;</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>L</mi><mi>b</mi></msub></mtd><mtd><mrow><mo>(</mo><mi>G</mi><mo>&lsqb;</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>&rsqb;</mo><mo>&lt;</mo><mi>&Delta;</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>42</mn><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000133246090000091.GIF" wi="1351" he="138" /></maths>S5、图像边缘检测、提取及轮廓跟踪D1、边缘检测采用Roberts边缘检测算子、Sobel边缘检测算子、Prewitt边缘检测算子、Krisch边缘检测算子、高斯‑拉普拉斯算子中的一种方法考察图像的每个像素在某个邻域内灰度的变化,利用边缘临近一阶或二阶方向导数变化规律;D2、轮廓的提取和跟踪对于二值图像,进行轮廓提取,将图像内部点掏空,得到图像的轮廓;先根据“探测准则”找出目标物体轮廓上的像素,再根据这些像素的某些特征用“跟踪准则”找出目标物体上的其他像素,从而对图像进行跟踪。
地址 110000 辽宁省沈阳市沈河区文化东路89号