一种指针式表盘自动读数方法与流程

文档序号:13760806阅读:249来源:国知局
一种指针式表盘自动读数方法与流程
一种指针式表盘自动读数方法,用于精确读数指针式表盘图像,属于机器视觉领域。
背景技术
:“机器视觉”是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。而对仪表的智能读数,是机器视觉在工程应用中一个重要的分支。在现代工业中,很多参数都需要实时的测量,例如耗电量,汽车油量的多少,而这些量的多少均需要用仪表来指示。如果仪表的数量非常巨大(实际上确实非常巨大),那么纯粹依靠人来读取仪表数据会相当麻烦。所以,我们需有用机器视觉的方法令智能设备对仪表的读数进行自动的读取。然而在硬件设备成像过程中,智能设备就如同人眼一样,要面临光照变化,模式识别,实时性等多方面的困难。所以研究人员们在设计算法时,既要克服噪声、环境的干扰,也要面临对各种不同特征的定性和定量的分析。近些年来有不少的研究机构和企业对仪表的智能读数作出了研究。2014年,闫钧华、杭谊青和段贺等人提出了对图像进行Hough圆检测,使用加权平均法定位表盘圆心及半径,提取表盘区域方形图像,然后进行图像预处理,提取仪表指针二值细化图像,使用中心投影法确定指针角度并提取零刻度线、满刻度线位置模板,标定量程起点、终点位置。但是Hough变换计算量比较大,而且定位不够准确,而中心投影法的投影大小随着物体改变而改变,且作图复杂。技术实现要素:本发明针对上述不足之处提供了一种指针式表盘自动读数方法,解决现有技术中仪表偏转的指针式表盘图像存在模糊、光照不均的情况下,指针式表盘图像读数不精确的问题。为了实现上述目的,本发明采用的技术方案为:一种指针式表盘自动读数方法,其特征在于,包括以下步骤:步骤1:读取原始图像f(x,y),对原始图像f(x,y)进行Hough变换初步提取表盘图像f1'(x,y),并将表盘图像f1'(x,y)进行直方图均衡化;步骤2:将表盘图像f1'(x,y)按行分成两部分,分别进行阈值分割,再合并成一张图像,对合并后的图像提取外轮廓l1;步骤3:通过最小二乘拟合将外轮廓l1拟合成椭圆,确定精确的表盘图像f2'(x,y);步骤4:对精确的表盘图像f2'(x,y)上下分成两块,分块后进行阈值分割,再合并分割结果成一张图像,并提取合并后的图像的最内层椭圆的外轮廓l2;步骤5:通过最小二乘拟合将外轮廓l2拟合成椭圆,得到外轮廓l2拟合成椭圆的圆心P(x,y);步骤6:将步骤5得到的椭圆等比例放大成两个不同大小的大椭圆,两个大椭圆具有相同的圆心和长短轴之比,长短轴为横向和纵向(或纵向和横向)平分大椭圆的轴,两个大椭圆之间即为条带区域D,外轮廓l2拟合成的椭圆与放大的较小的大椭圆之间即为条带区域D';步骤7:将条带区域D分成上下两块后进行阈值分割,合并分割结果成一张图像,得到刻度的起始位置和刻度的终点位置;步骤8:根据步骤6得到的条带区域D',采用填补法确定指针位置;步骤9:按照外轮廓l2拟合成的椭圆的长短轴之比,将条带区域D和条带区域D'修复成正圆;步骤10:将条带区域D和条带区域D'修复成正圆后,通过刻度的起始位置、刻度的终点位置和指针位置计算原始图像f(x,y)中的读数。进一步,所述步骤1的具体步骤如下:步骤11:读取原始图像f(x,y);步骤12:对原始图像f(x,y)进行Hough变换初步提取表盘图像f1'(x,y),公式如下:(x-x0)2a2+(y-y0)2b2=1;]]>其中,a是椭圆的长轴或短轴,b是椭圆的短轴或长轴,a为横轴,b为纵轴,(x0,y0)是表盘图像的椭圆圆心,x、y是原空间的自变量与因变量;步骤13:将表盘图像f1'(x,y)进行直方图均衡化,具体公式如下:sk=(L-1)MNΣj=0knj,k=0,1,2,...,L-1;]]>其中,sk是均衡化之后的值为k的灰度,L是图像中的灰度级数量,即对8比特图像是256,MN是表盘图像f1'(x,y)中像素的总数,M是表盘图像f1'(x,y)每一行的像素个数,N是表盘图像f1'(x,y)每一列的像素个数,nj是原始图像f(x,y)中灰度为j的像素个数。进一步,所述步骤2和步骤4中,提取外轮廓的具体步骤如下:步骤241:计算连通分量,公式如下:Xkm={Xk-1m⊕B}∩g(x,y);]]>其中g(x,y)分别表示步骤2和步骤4中进行阈值分割后合并的图像,B表示结构元,b={b1,b2}表示原结构元B里每个像素的坐标,w={w1,w2}表示经过变换后的结构元每个像素的坐标,(B)z={w|w=b+z,b∈B}表示将B中的坐标b={b1,b2}都加上z={z1,z2}个像素坐标,表示关于结构元B的原点映射该集合的所有元素,m=1或2,分别表示对步骤2和步骤4中提取到的进行阈值分割后合并的图像的所有连通分量;步骤242:提取最大连通分量,公式如下:Xmaxm=max{Area(Xkm)};]]>其中,m=1或2,分别表示步骤2和步骤4中提取到的进行阈值分割后合并的图像的最大连通分量,表示连通分量的像素个数,最大连通分量即像素个数最多的连通分量;步骤243:提取外轮廓,公式如下:lm=Xmaxm(Imax,j)∪Xmaxm(Imin,j)∪Xmaxm(i,Jmax)∪Xmaxm(i,Jmin);]]>其中,m=1或2,lm分别表示步骤2中得到的最外层椭圆的外轮廓和步骤4中得到的最内层椭圆的外轮廓,表示中每一列的横坐标最大值,表示中每一列的横坐标最小值,表示中每一行的纵坐标最大值,表示中每一行的纵坐标最小值。进一步,所述步骤3和步骤5中,最小二乘拟合的公式为:minX||AX-B||2;]]>其中,A={a1a2…ai…aN}T,i=1,2,…,N,(xi,yi)是外轮廓l1或l2每个像素的坐标,即A由外轮廓求得,T表示转置,(xi,yi)表示外轮廓l1或外轮廓l2上的点坐标,(xc,yc)表示拟合椭圆的圆心,a是拟合椭圆的长轴或短轴,b是拟合椭圆的短轴或长轴,a为横轴,b为纵轴,B表示每个轮廓点代入椭圆方程的常数项,N表示提取到的外轮廓的像素点个数,最小二乘拟合的解X可以用通解公式X=(ATA)-1ATB求得,再根据上述X中每个元素之间的关系则可以求出拟合椭圆的圆心(xc,yc)和长短轴a,b。进一步,所述步骤6中,等比例放大椭圆的公式为:(x-x0)2ka2+(y-y0)2kb2=1;]]>其中,a是椭圆的长轴或短轴,b是椭圆的短轴或长轴,a为横轴,b为纵轴,(x0,y0)是椭圆圆心,k是缩放的比例系数。进一步,所述步骤8的具体步骤如下:步骤81:对条带区域D'进行最小值滤波如下:R=min{zk|k=1,2,…,(2n-1)2};其中,zk是进行最小值滤波的模版,表示对原始图像中被模版框住的像素点进行最小值滤波,2n-1表示模版尺寸;步骤82:将最小值滤波过后的条带区域D'进行阈值分割,得到由刻度和指针造成的孔洞,计算连通分量,并对每个孔洞的位置和像素个数进行标记;步骤83:依次将条带区域D'中每个孔洞的位置的全部像素的像素值取反,而其余孔洞都不操作;步骤84:对进行了取反操作后的图像进行孔洞填充,如果圆心P(x,y)也被填充,则该孔洞为指针,否则,不是。进一步,所述步骤2、步骤4、步骤7和步骤82的阈值分割公式如下:gm(x,y)={1f(x,y)>k*0f(x,y)≤k*;]]>σ2(k*)=max0≤k≤L-1{[mGP1(k)-m(k)]2P1(k)[1-P1(k)]};]]>P1(k)=Σi=0kpi;]]>m(k)=Σi=0kipi;]]>mG=Σi=0L-1ipi;]]>其中,gm(x,y)在步骤2、步骤4、步骤7和步骤82中分别代表阈值分割后的图像,f(x,y)是原始图像,在步骤2中,f(x,y)代表表盘图像f1'(x,y)按行分成的两部分中的其中一部分图像,在步骤4中,f(x,y)代表精确的表盘图像f2'(x,y)上下分成两块后的上块或下块图像,步骤7中,f(x,y)代表条带区域D分成上下两块后的上块或下块图像,步骤82中,f(x,y)代表进行最小值滤波过后的条带区域D',k*是自适应的最佳阈值,m(k)是累加至灰度级k的均值,mG是整个图像(图像即指原始图像f(x,y)按行分成的两部分中的其中一部分图像、精确的表盘图像f2'(x,y)上下分成两块后的上块或下块图像、条带区域D分成上下两块后的上块或下块图像和进行最小值滤波后的条带区域D')的平均灰度,即全局阈值,pi表示像素值为i的像素在图像中的百分比,假设阈值T(k)=k,并使用它把输入图像阈值化处理为两类C1和C2,P1(k)表示像素被分到类C1的概率,1-P1(k)表示像素被分到类C2的概率,σ2是C1类和C2类之间的方差,参数pi、T(k)、P1(k)、C1、C2和σ2因不同步骤的原始图像f(x,y)而相应改变。进一步,所述步骤9中,椭圆修正成正圆的公式为:x'=x+α(x-xC);其中,x表示椭圆边的横坐标,xC表示椭圆圆心的横坐标,x'表示修正后正圆边的横坐标,α为拉伸因子,即长短轴比。进一步,所述步骤10中,计算原始图像f(x,y)中的读数的具体步骤为:(101)计算圆心P(x,y)到刻度的起始位置的向量与圆心P(x,y)到指针位置的向量之间的夹角θ1;(102)计算圆心P(x,y)到刻度的起始位置的向量与圆心P(x,y)到刻度的终点位置的向量之间的夹角θ2;(103)夹角之比θ1/θ2即是指针读数。进一步,所述夹角θ1和夹角θ2的计算公式如下:<v→1,v→2>=arccos(v→1·v→2||v→1||2·||v→2||2);]]>其中,表示向量的夹角θ1,表示向量内积,和表示向量的模,如果计算夹角θ2时,需要将公式中的替换为即有表示向量的夹角θ2,表示向量内积,和表示向量的模,需要注意的是,令若x1≤0,y1≤0或者x1≤0,y1≥0或者当x1≥0,y1≥0时,若则直接输出作为向量和向量的夹角,反之,若x1≥0,y1≤0或者当x1≥0,y1≥0时,若时,令作为向量和向量的夹角。与现有技术相比,本发明的优点在于:一、算法结构简单,运算量少,处理速度快,效率高;二、解决了表盘被部分遮挡,光照不均,相机旋转等干扰的影响,鲁棒性强;三、率先将最小二乘拟合应用到了椭圆形表盘的定位中来,该方法兼顾了精确度、高效率和易实现等多方面原因;四、可移植到C++平台下运行,并且也可以移植到其他平台。附图说明图1为本发明中将椭圆修正成正圆的示意图;图2为本发明的方法流程图;图3为本发明中的原始图像;图4为本发明中用Hough变换初步提取到的表盘图像f1'(x,y)的示意图;图5为本发明中将表盘图像f1'(x,y)均衡化,然后提取外轮廓l1之后的示意图;图6为本发明中用l1拟合的椭圆确定的精确的表盘图像f2'(x,y);图7为本发明中提取最内层椭圆外轮廓l2;图8为本发明中用l2拟合的椭圆;图9为本发明中用l2拟合的椭圆放大成不同长短轴,相同圆心的两个大椭圆示意图;图10为本发明中用两个大椭圆确定的条带区域D的示意图;图11为本发明中用较小的大椭圆与用l2拟合的椭圆确定的条带区域D'的示意图;图12为本发明中确定指针位置的示意图;图13为本发明中计算指针的读数的示意图。具体实施方式下来结合附图和实施例对本发明作进一步说明。一种指针式表盘自动读数方法,包括以下步骤:步骤1:读取原始图像f(x,y),如图3所示,对原始图像f(x,y)进行Hough变换初步提取表盘图像f1'(x,y),如图4所示,并将表盘图像f1'(x,y)进行直方图均衡化;具体步骤如下:步骤11:读取原始图像f(x,y);步骤12:对原始图像f(x,y)进行Hough变换初步提取表盘图像f1'(x,y),公式如下:(x-x0)2a2+(y-y0)2b2=1;]]>其中,a是椭圆的长轴或短轴,b是椭圆的短轴或长轴,a为横轴,b为纵轴,(x0,y0)是表盘图像的椭圆圆心,x、y是原空间的自变量与因变量;步骤13:将表盘图像f1'(x,y)进行直方图均衡化,具体公式如下:sk=(L-1)MNΣj=0knj,k=0,1,2,...,L-1;]]>其中,sk是均衡化之后的值为k的灰度,L是图像中的灰度级数量,即对8比特图像是256,MN是表盘图像f1'(x,y)中像素的总数,M是表盘图像f1'(x,y)每一行的像素个数,N是表盘图像f1'(x,y)每一列的像素个数,nj是原始图像f(x,y)中灰度为j的像素个数。步骤2:将表盘图像f1'(x,y)按行分成两部分,分别进行阈值分割,再合并成一张图像,对合并后的图像提取外轮廓l1,如图5所示;对每部分阈值分割公式如下:gm(x,y)=1f1m′(x,y)>km*0f1m′(x,y)≤km*;]]>σ2(km*)=max0≤k≤L-1{[mGP1(k)-m(k)]2P1(k)[1-P1(k)]};]]>P1(k)=Σi=0kpi;]]>m(k)=Σi=0kipi;]]>mG=Σi=0L-1ipi]]>其中,gm(x,y)是表盘图像f1'(x,y)每部分阈值分割后的图像(m=1,2),是表盘图像f1'(x,y)每部分各自的自适应的最佳阈值,m(k)是表盘图像f1'(x,y)每部分累加至灰度级k的均值,mG是表盘图像f1'(x,y)每部分的平均灰度,即每部分的全局阈值,pi表示像素值为i的像素在表盘图像f1'(x,y)每部分中的百分比并且有假设阈值T(k)=k,并使用它把输入每部分f1'(x,y)阈值分割后的图像阈值化处理为两类C1和C2,P1(k)表示像素被分到类C1的概率,1-P1(k)表示像素被分到类C2的概率,σ2是C1类和C2类之间的方差。提取外轮廓的具体步骤如下:将阈值分割后的两个部分图像合并成一张图像后,计算连通分量,公式如下:Xk1={Xk-11⊕B}∩g(x,y);]]>其中g(x,y)表示阈值分割后合并的图像,B表示结构元,b={b1,b2}表示原结构元B里每个像素的坐标,w={w1,w2}表示经过变换后的结构元每个像素的坐标,(B)z={w|w=b+z,b∈B}表示将B中的坐标b={b1,b2}都加上z={z1,z2}个像素坐标,表示关于结构元B的原点映射该集合的所有元素。表示阈值分割后合并的图像中提取到的所有连通分量。提取最大连通分量,公式如下:Xmax1=max{Area(Xk1)};]]>其中,表示阈值分割后合并的图像中提取的最大连通分量,表示连通分量的像素个数,最大连通分量即像素个数最多的连通分量。提取外轮廓,公式如下:l1=Xmax1(Imax,j)∪Xmax1(Imin,j)∪Xmax1(i,Jmax)∪Xmax1(i,Jmin);]]>其中,l1表示阈值分割合并后的图像中的最外层椭圆的外轮廓,表示中每一列的横坐标最大值,表示中每一列的横坐标最小值,表示中每一行的纵坐标最大值,表示中每一行的纵坐标最小值。步骤3:通过最小二乘拟合将l1拟合成椭圆,确定精确的表盘图像f2'(x,y),如图6所示;最小二乘拟合的公式如下:minX||AX-B||2;]]>其中,A={a1a2…ai…aN}T,i=1,2…N,(xi,yi)是外轮廓l1每个像素的坐标,即A由外轮廓求得。T表示转置,(xi,yi)表示外轮廓l1上的点坐标,(xc,yc)表示拟合椭圆的圆心,a是拟合椭圆的长轴或短轴,b是拟合椭圆的短轴或长轴,a为横轴,b为纵轴,B表示每个轮廓点代入椭圆方程的常数项,N表示提取到的外轮廓的像素点个数,最小二乘拟合的解X可以用通解公式X=(ATA)-1ATB求得,再根据上述X中每个元素之间的关系则可以求出拟合椭圆的圆心(xc,yc)和长短轴a,b。步骤4:对精确的表盘图像f2'(x,y)上下分成两块,分块后进行阈值分割,再合并分割结果成一张图像,并提取合并后的图像的最内层椭圆的外轮廓l2,如图7所示。对每部分阈值分割公式如下:gm(x,y)=1f2m′(x,y)>km*0f2m′(x,y)≤km*;]]>σ2(km*)=max0≤k≤L-1{[mGP1(k)-m(k)]2P1(k)[1-P1(k)]};]]>P1(k)=Σi=0kpi]]>m(k)=Σi=0kipi;]]>mG=Σi=0L-1ipi]]>其中,gm(x,y)是表盘图像f2'(x,y)每部分阈值分割后的图像(m=1,2),是表盘图像f2'(x,y)每部分各自的自适应的最佳阈值,m(k)是表盘图像f2'(x,y)每部分累加至灰度级k的均值,mG是表盘图像f2'(x,y)每部分的平均灰度,即每部分的全局阈值,pi表示像素值为i的像素在表盘图像f2'(x,y)每部分中的百分比并且有假设阈值T(k)=k,并使用它把输入表盘图像f2'(x,y)每部分阈值化处理为两类C1和C2,P1(k)表示像素被分到类C1的概率,1-P1(k)表示像素被分到类C2的概率,σ2是C1类和C2类之间的方差。提取外轮廓的具体步骤如下:阈值分割后的两个部分图像合并成一张图像后,计算连通分量,公式如下:Xk2={Xk-12⊕B}∩g(x,y);]]>其中g(x,y)表示阈值分割后合并的图像,B表示结构元,b={b1,b2}表示原结构元B里每个像素的坐标,w={w1,w2}表示经过变换后的结构元每个像素的坐标,(B)z={w|w=b+z,b∈B}表示将B中的坐标b={b1,b2}都加上z={z1,z2}个像素坐标,表示关于结构元B的原点映射该集合的所有元素。表示在阈值分割后合并的图像中提取到的所有连通分量。提取最大连通分量,公式如下:Xmax2=max{Area(Xk2)};]]>其中,表示阈值分割后合并的图像中提取的最大连通分量,表示连通分量的像素个数,最大连通分量即像素个数最多的连通分量。提取外轮廓,公式如下:l2=Xmax2(Imax,j)∪Xmax2(Imin,j)∪Xmax2(i,Jmin);]]>其中,l2表示阈值分割合并后的图像中的最内层椭圆的外轮廓,表示中每一列的横坐标最大值,表示中每一列的横坐标最小值,表示每一行的纵坐标的最小值。这一步中,考虑到最内层椭圆的最大连通分量的底部有明显凹陷,如图6所示,这是仪表本身设计所造成的,该凹陷对l2的拟合是不利的,因故这一步舍去了每一行的纵坐标的最大值步骤5:通过最小二乘拟合将外轮廓l2拟合成椭圆,如图8所示,得到外轮廓l2拟合成椭圆的圆心P(x,y);拟合椭圆的公式如下所示:minX||AX-B||2;]]>其中,A={a1a2…ai…aN}T,i=1,2…N,(xi,yi)是外轮廓l2每个像素的坐标,即A由外轮廓求得。T表示转置,(xi,yi)表示外轮廓l2上的点坐标,(xc,yc)表示拟合椭圆的圆心,a是拟合椭圆的长轴或短轴,b是拟合椭圆的短轴或长轴,a为横轴,b为纵轴,B表示每个轮廓点代入椭圆方程的常数项,N表示提取到的外轮廓的像素点个数,最小二乘拟合的解X可以用通解公式X=(ATA)-1ATB求得,再根据上述X中每个元素之间的关系则可以求出拟合椭圆的圆心(xc,yc)和长短轴a,b。步骤6:将步骤5得到的椭圆等比例放大成两个不同大小的大椭圆,两个大椭圆具有相同的圆心和长短轴之比,如图9所示,长短轴为横向和纵向(或纵向和横向)平分大椭圆的轴,两个大椭圆之间即为条带区域D,外轮廓l2拟合成的椭圆与放大的较小的大椭圆之间即为条带区域D';等比例放大椭圆的公式为:(x-x0)2ka2+(y-y0)2kb2=1;]]>其中,a是椭圆的长轴或短轴,b是椭圆的短轴或长轴,a为横轴,b为纵轴,(x0,y0)是椭圆圆心,k是缩放的比例系数。步骤7:将两个大椭圆之间的条带区域D分成上下两块进行阈值分割,再合并,可以得到刻度的起始位置和刻度的终点位置,如图10所示;将条带区域D每部分进行阈值分割公式如下:gm(x,y)=1Dm(x,y)>km*0Dm(x,y)≤km*;]]>σ2(km*)=max0≤k≤L-1{[mGP1(k)-m(k)]2P1(k)[1-P1(k)]};]]>P1(k)=Σi=0kpi]]>m(k)=Σi=0kipi;]]>mG=Σi=0L-1ipi]]>其中,gm(x,y)表示是条带区域D分成上下两块阈值分割后的上块或下块图像(m=1,2),是条带区域D每一块各自的自适应的最佳阈值,m(k)是条带区域D每一块累加至灰度级k的均值,mG是条带区域D每一块的平均灰度,即每一块的全局阈值,pi表示像素值为i的像素在条带区域D每一块中的百分比并且有假设阈值T(k)=k,并使用它把输入条带区域D每一块阈值化处理为两类C1和C2,P1(k)表示像素被分到类C1的概率,1-P1(k)表示像素被分到类C2的概率,σ2是C1类和C2类之间的方差。步骤8:根据步骤6得到的条带区域D',采用填补法确定指针位置,如图12所示,具体步骤如下:步骤81:对条带区域D'进行最小值滤波如下:R=min{zk|k=1,2,…,(2n-1)2};其中,zk是进行最小值滤波的模版,表示对原始图像中被模版框住的像素点进行最小值滤波,2n-1表示模版尺寸;步骤82:将最小值滤波过后的条带区域D'进行阈值分割,得到由刻度和指针造成的孔洞,计算连通分量,并对每个孔洞的位置和像素个数进行标记;g(x,y)={1D′(x,y)>k*0D′(x,y)≤k*;]]>σ2(k*)=max0≤k≤L-1{[mGP1(k)-m(k)]2P1(k)[1-P1(k)]};]]>P1(k)=Σi=0kpi]]>m(k)=Σi=0kipi;]]>mG=Σi=0L-1ipi]]>其中,g(x,y)是最小值滤波过后的条带区域D'分割后的图像,k*是最小值滤波过后的条带区域D'的自适应的最佳阈值,m(k)是最小值滤波过后的条带区域D'累加至灰度级k的均值,mG是最小值滤波过后的条带区域D'的平均灰度,即全局阈值,pi表示像素值为i的像素在最小值滤波过后的条带区域D'中的百分比并且有假设阈值T(k)=k,并使用它把输入最小值滤波过后的条带区域D'阈值化处理为两类C1和C2,P1(k)表示像素被分到类C1的概率,1-P1(k)表示像素被分到类C2的概率,σ2是C1类和C2类之间的方差。步骤83:依次将条带区域D'中每个孔洞的位置的全部像素的像素值取反,而其余孔洞都不操作;步骤84:对进行了取反操作后的图像进行孔洞填充,如果圆心P(x,y)也被填充,则该孔洞为指针,否则,不是。步骤9:按照l2拟合出的椭圆的长短轴之比,将条带区域D和条带区域D'修复成正圆,如图1所示,修复成正圆的公式为:x'=x+α(x-xC);其中,x表示椭圆边的横坐标,xC表示椭圆圆心的横坐标,x’表示修正后正圆边的横坐标,α为拉伸因子,即长短轴比。由于样本都属于竖直的椭圆所以只需要考虑水平拉伸即可,以椭圆圆心为中心做左右拉伸,根据实际情况还可对其它方向进行拉伸。步骤10:将条带区域D和条带区域D'修复成正圆后,计算原始图像f(x,y)中的读数。如图11所示,通过刻度的起始位置、刻度的终点位置和指针位置计算原始图像f(x,y)中的读数的具体步骤为:(101)计算圆心P(x,y)到刻度的起始位置的向量与圆心P(x,y)到指针位置的向量之间的夹角θ1;(102)计算圆心P(x,y)到刻度的起始位置的向量与圆心P(x,y)到刻度的终点位置的向量之间的夹角θ2;(103)夹角之比θ1/θ2即是指针读数。夹角θ1和夹角θ2的计算公式如下:<v→1,v→2>=arccos(v→1·v→2||v→1||2·||v→2||2);]]>其中,表示向量的夹角θ1,表示向量内积,和表示向量的模,如果计算夹角θ2时,需要将公式中的替换为即有表示向量的夹角θ2,表示向量内积,和表示向量的模,需要注意的是,令若x1≤0,y1≤0或者x1≤0,y1≥0或者当x1≥0,y1≥0时,若则直接输出作为向量和向量的夹角,反之,若x1≥0,y1≤0或者当x1≥0,y1≥0时,若时,令作为向量和向量的夹角。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1