发明内容
本发明的目的在于提供一种测试chart内容抓取方法及系统,旨在解决现有技术中对于测试chart内容的抓取算法无法解决由于测试画面发生旋转所导致的抓取误差,进一步需要测试人员不断移动桌面治具,耗时耗力,测试效率低的问题。
本发明是这样实现的,一种测试chart内容抓取方法,所述方法包括下述步骤:
根据测试chart上的四个定位十字的中心坐标,计算测试chart的中心点C的坐标;
根据当前视场的四个定位十字的中心坐标以及所述测试chart中心点C的坐标,计算每个视场的四个虚拟十字的中心点坐标;
根据每个视场的四个虚拟十字的中心点坐标以及所述测试chart的中心点C的坐标,计算所有视场抓取点的坐标;
根据每个视场抓取点的坐标以及影像小方框的边角要求,在所述测试chart图像中绘制对应的影像小方框,其中,所述视场抓取点为所述影像小方框的中心点。
作为一种改进的方案,所述根据测试chart上的四个定位十字,计算测试chart的中心点C的步骤具体包括下述步骤:
获取所述测试chart上四个定位十字的中心点坐标,其中,所述测试chart上的四个定位十字记为:上十字T、下十字B、左十字L以及右十字R;
计算所述上十字T和下十字B所在直线TB与所述左十字L和右十字R所在直线LR的交点坐标,即为测试chart的中心点C,其坐标为(Cx,Cy)。
作为一种改进的方案,所述测试chart以所述中心点C为中心,划分为04、06和08视场,或者划分为03、05、07以及09视场。
作为一种改进的方案,所述每个视场所在圆与所述测试chart的对角线的交点即为所述视场抓取点。
作为一种改进的方案,所述根据当前视场的四个定位十字的中心坐标以及所述测试chart中心点C的坐标,计算每个视场的四个虚拟十字的中心点坐标的步骤的计算式为:
L0Ax=Cx-((Cx-Lx)/M)*0.A;
L0Ay=Cy-((Cy-Ly)/M)*0.A;
T0Ax=Cx-((Cx-Tx)/M)*0.A;
T0Ay=Cy-((Cy-Ty)/M)*0.A;
R0Ax=Cx-((Cx-Rx)/M)*0.A;
R0Ay=Cy-((Cy-Ry)/M)*0.A;
B0Ax=Cx-((Cx-Bx)/M)*0.A;
B0Ay=Cy-((Cy-By)/M)*0.A;
其中,0A为待计算视场,M为当前定位十字所对的视场所对应的级别等份,(Lx,Ly)、(Rx,Ry)、(Tx,Ty)以及(Bx,By)为当前视场四个定位十字的中心点坐标,(L0Ax,L0Ay)为待计算视场左侧虚拟十字的中心点坐标,(T0Ax,T0Ay)为待计算视场上侧虚拟十字的中心点坐标,(R0Ax,R0Ay)为待计算视场右侧虚拟十字的中心坐标,(B0Ax,B0Ay)为待计算视场下侧虚拟十字的中心点坐标。
作为一种改进的方案,所述计算所有视场抓取点的坐标的计算式为:
待计算视场左上抓取点横坐标:P0ATLx=(L0Ax+T0Ax)–Cx;
待计算视场左上抓取点纵坐标:P0ATLy=(L0Ay+T0Ay)–Cy;
待计算视场右上抓取点横坐标:P0ATRx=(R0Ax+T0Ax)–Cx;
待计算视场右上抓取点纵坐标:P0ATRy=(R0Ay+T0Ay)–Cy;
待计算视场左下抓取点横坐标:P0ABLx=(L0Ax+B0Ax)–Cx;
待计算视场左下抓取点纵坐标:P0ABLy=(L0Ay+B0Ay)–Cy;
待计算视场右下抓取点横坐标:P0ABRx=(R0Ax+B0Ax)–Cx;
待计算视场右下抓取点纵坐标:P0ABRy=(R0Ay+B0Ay)–Cy。
本发明实施例的另一目的在于提供一种测试chart内容抓取系统,其特征在于,所述系统包括:
测试chart中心点计算模块,用于根据测试chart上的四个定位十字的中心坐标,计算测试chart的中心点C的坐标;
虚拟十字中心坐标计算模块,用于根据当前视场的四个定位十字的中心坐标以及所述测试chart中心点C的坐标,计算其他每个视场的四个虚拟十字的中心点坐标;
抓取点坐标计算模块,用于根据每个视场的四个虚拟十字的中心点坐标以及所述测试chart的中心点C的坐标,计算所有视场抓取点的坐标;
影像小方框绘制模块,用于根据每个视场抓取点的坐标以及影像小方框的边角要求,在所述测试chart图像中绘制对应的影像小方框,其中,所述视场抓取点为所述影像小方框的中心点。
作为一种改进的方案,所述测试chart中心点计算模块具体包括:
定位十字中心点坐标获取模块,用于获取所述测试chart上四个定位十字的中心点坐标,其中,所述测试chart上的四个定位十字记为:上十字T、下十字B、左十字L以及右十字R;
相交直线计算模块,用于计算所述上十字T和下十字B所在直线TB与所述左十字L和右十字R所在直线LR的交点坐标,即为测试chart的中心点C,其坐标为(Cx,Cy)。
作为一种改进的方案,所述虚拟十字中心坐标计算模块计算每个视场的四个虚拟十字的中心点坐标所采用的计算式为:
L0Ax=Cx-((Cx-Lx)/M)*0.A;
L0Ay=Cy-((Cy-Ly)/M)*0.A;
T0Ax=Cx-((Cx-Tx)/M)*0.A;
T0Ay=Cy-((Cy-Ty)/M)*0.A;
R0Ax=Cx-((Cx-Rx)/M)*0.A;
R0Ay=Cy-((Cy-Ry)/M)*0.A;
B0Ax=Cx-((Cx-Bx)/M)*0.A;
B0Ay=Cy-((Cy-By)/M)*0.A;
其中,0A为待计算视场,M为当前定位十字所对的视场所对应的级别等份,(Lx,Ly)、(Rx,Ry)、(Tx,Ty)以及(Bx,By)为当前视场四个定位十字的中心点坐标,(L0Ax,L0Ay)为待计算视场左侧虚拟十字的中心点坐标,(T0Ax,T0Ay)为待计算视场上侧虚拟十字的中心点坐标,(R0Ax,R0Ay)为待计算视场右侧虚拟十字的中心坐标,(B0Ax,B0Ay)为待计算视场下侧虚拟十字的中心点坐标。
作为一种改进的方案,所述抓取点坐标计算模块计算所有视场抓取点的坐标所采用的计算式为:
待计算视场左上抓取点横坐标:P0ATLx=(L0Ax+T0Ax)–Cx;
待计算视场左上抓取点纵坐标:P0ATLy=(L0Ay+T0Ay)–Cy;
待计算视场右上抓取点横坐标:P0ATRx=(R0Ax+T0Ax)–Cx;
待计算视场右上抓取点纵坐标:P0ATRy=(R0Ay+T0Ay)–Cy;
待计算视场左下抓取点横坐标:P0ABLx=(L0Ax+B0Ax)–Cx;
待计算视场左下抓取点纵坐标:P0ABLy=(L0Ay+B0Ay)–Cy;
待计算视场右下抓取点横坐标:P0ABRx=(R0Ax+B0Ax)–Cx;
待计算视场右下抓取点纵坐标:P0ABRy=(R0Ay+B0Ay)–Cy。
在本发明实施例中,根据测试chart上的四个定位十字的中心坐标,计算测试chart的中心点C的坐标;根据当前视场的四个定位十字的中心坐标以及所述测试chart中心点C的坐标,计算每个视场的四个虚拟十字的中心点坐标;根据每个视场的四个虚拟十字的中心点坐标以及所述测试chart的中心点C的坐标,计算所有视场抓取点的坐标;根据每个视场抓取点的坐标以及影像小方框的边角要求,在所述测试chart图像中绘制对应的影像小方框,该计算方式不会因为测试chart画面的旋转而产生误差,提高了抓取精度,同时,通过摄像模组拍摄测试chart画面时,只需要将测试chart的四个定位十字调整到摄像模组的对应蓝框之内即可实现自动对各个视场测试chart内容抓取点的定位抓取,操作方便快捷,提高了测试效率。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图2示出了本发明实施例提供的测试chart内容抓取方法的实现流程图,具体步骤如下所述:
在步骤S101中,根据测试chart上的四个定位十字的中心坐标,计算测试chart的中心点C的坐标。
在该步骤中,该计算测试chart的中心C的坐标的步骤如下所述:
如图3所示,获取所述测试chart上四个定位十字的中心点坐标,其中,所述测试chart上的四个定位十字记为:上十字T、下十字B、左十字L以及右十字R;
计算所述上十字T和下十字B所在直线TB与所述左十字L和右十字R所在直线LR的交点坐标,即为测试chart的中心点C,其坐标为(Cx,Cy)。
其中,获取所述测试chart上四个定位十字的中心点坐标的方式可以是:采用特定算法对测试chart抓取到的四个蓝色方框图片进行分析得到,在此不再赘述。
在步骤S102中,根据当前视场的四个定位十字的中心坐标以及测试chart中心点C的坐标,计算每个视场的四个虚拟十字的中心点坐标。
在该步骤中,图3示出的测试chart的规格,即黑色小方块、四个定位十字以及不同级别的视场,其中:
测试chart以所述中心点C为中心,划分为04、06和08视场,或者划分为03、05、07以及09视场,或者其他方式,其划分依据是以中心为00,测试chart的四个角落为10划分,在此不再赘述。
其中上述这些划分方式其实质是一样的,在此包括下述内容均以04、06以及08视场为例进行说明;
a:测试chart中,上、下、左、右的十字形图形,是定位用的十字,简称定位十字,图中示出的06视场的效果;
b:整个测试chart的对角线的交点为中心视场,中心视场到对角线顶点0.4倍距离的位置,称为04视场,同理,可以得到06视场、08视场的定义,由于在CCM影像中不同位置的解像力不同,所以要测试CCM的解像力,要测试各个视场的SFR值;
c:测试chart中的黑色小方块,是测试SFR之用,每个视场的圆形与对角线交点的位置,都有一个黑色小方块的斜边,斜边的中点,与视场的圆形和对角线的交点重合,该点称为某视场的抓取点,可以看出,以抓取点为中心,截取一个影像小方框内,便可以得到一系列一半为黑、一半为白的图形,根据这些图形,可以计算出一系列SFR值,用于判断CCM解像力;
d:上、下十字连线与左、右十字连线的交点,也同时是测试chart对角线交点,称为Chart中心点。
在本发明实施例中,图1、图3、图4和图7中,黑色小方块的标识颜色为阴影标记,其目的是为了便于区分后续图7中所绘制的影像小方框的边框范围效果,实际操作中,测试chart中张贴的是黑色小方块,在此不用以限制本发明。
其中,上述计算其他每个视场的四个虚拟十字的中心点坐标的计算方式可以有多种,下述给出一种:
L0Ax=Cx-((Cx-Lx)/M)*0.A;
L0Ay=Cy-((Cy-Ly)/M)*0.A;
T0Ax=Cx-((Cx-Tx)/M)*0.A;
T0Ay=Cy-((Cy-Ty)/M)*0.A;
R0Ax=Cx-((Cx-Rx)/M)*0.A;
R0Ay=Cy-((Cy-Ry)/M)*0.A;
B0Ax=Cx-((Cx-Bx)/M)*0.A;
B0Ay=Cy-((Cy-By)/M)*0.A;
其中,0A为待计算视场,M为当前定位十字所对的视场所对应的级别等份,(Lx,Ly)、(Rx,Ry)、(Tx,Ty)以及(Bx,By)为当前视场四个定位十字的中心点坐标,(L0Ax,L0Ay)为待计算视场左侧虚拟十字的中心点坐标,(T0Ax,T0Ay)为待计算视场上侧虚拟十字的中心点坐标,(R0Ax,R0Ay)为待计算视场右侧虚拟十字的中心坐标,(B0Ax,B0Ay)为待计算视场下侧虚拟十字的中心点坐标。
当然也可以采用其他方式,在此不再赘述,其计算的效果图为图4所示,图4中定位十字两侧的虚拟十字、以及定位十字本身所覆盖的虚拟十字即为计算得到的。
在步骤S103中,根据每个视场的四个虚拟十字的中心点坐标以及所述测试chart的中心点C的坐标,计算所有视场抓取点的坐标。
在该步骤中,根据各个视场的四个虚拟十字的中心点坐标以及中心点C的坐标,通过相应的逻辑计算方式,计算所有视场抓取点的坐标,其计算的方式可以采用多种方式,下述给出其中一种:
待计算视场左上抓取点横坐标:P0ATLx=(L0Ax+T0Ax)–Cx;
待计算视场左上抓取点纵坐标:P0ATLy=(L0Ay+T0Ay)–Cy;
待计算视场右上抓取点横坐标:P0ATRx=(R0Ax+T0Ax)–Cx;
待计算视场右上抓取点纵坐标:P0ATRy=(R0Ay+T0Ay)–Cy;
待计算视场左下抓取点横坐标:P0ABLx=(L0Ax+B0Ax)–Cx;
待计算视场左下抓取点纵坐标:P0ABLy=(L0Ay+B0Ay)–Cy;
待计算视场右下抓取点横坐标:P0ABRx=(R0Ax+B0Ax)–Cx;
待计算视场右下抓取点纵坐标:P0ABRy=(R0Ay+B0Ay)–Cy。
其中,上述各个式中的参数参考上述实施例中所记载,在此不再赘述。
在步骤S104中,根据每个视场抓取点的坐标以及影像小方框的边角要求,在所述测试chart图像中绘制对应的影像小方框,其中,所述视场抓取点为所述影像小方框的中心点。
在该步骤中,绘制得到的影像小方框所记载的图像内容即为摄像模组解像力判断的依据,此为解像力判断的后续流程,本发明实施例不再介绍。
为了进一步地的对本发明实施例的方案进行阐述,结合图5和图6,下述以定位十字在0.6视场、计算0.8视场的四个虚拟十字和抓取点为例进行说明:
1、0.6视场中,四个定位十字的中心坐标为(Lx,Ly)、(Rx,Ry)、(Tx,Ty)以及(Bx,By);
测试chart中心点C的坐标为:(Cx,Cy);
0.8视场中,(L08x,L08y)为待计算视场左侧虚拟十字的中心点坐标,(T08x,T08y)为待计算视场上侧虚拟十字的中心点坐标,(R08x,R08y)为待计算视场右侧虚拟十字的中心坐标,(B08x,B08y)为待计算视场下侧虚拟十字的中心点坐标;
当前视场为0.6视场,因此M=0.6;
2、计算0.8视场的四个虚拟十字的中心坐标
a:0.8视场左侧虚拟十字的中心点坐标:
L08x=Cx-((Cx-Lx)/0.6)*0.8;
L08y=Cy-((Cy-Ly)/0.6)*0.8;
b:0.8视场上侧虚拟十字的中心点坐标:
T08x=Cx-((Cx-Tx)/0.6)*0.8;
T08y=Cy-((Cy-Ty)/0.6)*0.8;
c:0.8视场右侧虚拟十字的中心点坐标:
R08x=Cx-((Cx-Rx)/0.6)*0.8;
R08y=Cy-((Cy-Ry)/0.6)*0.8;
d:0.8视场下侧虚拟十字的中心点坐标:
B08x=Cx-((Cx-Bx)/0.6)*0.8;
B08y=Cy-((Cy-By)/0.6)*0.8。
3、计算0.8视场抓取点的坐标
0.8视场左上抓取点横坐标:P08TLx=(L08x+T08x)–Cx;
0.8视场左上抓取点纵坐标:P08TLy=(L08y+T08y)–Cy;
0.8视场右上抓取点横坐标:P08TRx=(R08x+T08x)–Cx;
0.8视场右上抓取点纵坐标:P08TRy=(R08y+T08y)–Cy;
0.8视场左下抓取点横坐标:P08BLx=(L08x+B08x)–Cx;
0.8视场左下抓取点纵坐标:P08BLy=(L08y+B08y)–Cy;
0.8视场右下抓取点横坐标:P08BRx=(R08x+B08x)–Cx;
0.8视场右下抓取点纵坐标:P08BRy=(R08y+B08y)–Cy。
其中,图6中仅给出了左上抓取点的效果示意图,对于其他的抓取点的效果示意图,在此不再赘述。
4、以抓取点的坐标,绘制影像小方框,其绘制效果如图7所示,其绘制的效果较好,该影像小方框的一半为黑色,一半为白色,为后续的解像力判断提供准确的依据,其中,在摄像模组抓取内容时,图7中,四个定位十字所在的框为蓝色,而影像小方框的颜色为绿色,并标记有数字,在此均用黑色线条标识,不再赘述,但不用以限制本发明。
上述仅给出了对于0.8视场的计算算法,其他视场(例如图6中所示的0.4、0.6视场的计算)的雷同,在此不再赘述,但不用以限制本发明。
图8示出了本发明实施例提供的测试chart内容抓取系统的结构示意图,为了便于说明,图中仅给出了与本发明实施例相关的部分。
测试chart中心点计算模块11用于根据测试chart上的四个定位十字的中心坐标,计算测试chart的中心点C的坐标;
虚拟十字中心坐标计算模块12用于根据当前视场的四个定位十字的中心坐标以及所述测试chart中心点C的坐标,计算每个视场的四个虚拟十字的中心点坐标;
抓取点坐标计算模块13用于根据每个视场的四个虚拟十字的中心点坐标以及所述测试chart的中心点C的坐标,计算所有视场抓取点的坐标;
影像小方框绘制模块14用于根据每个视场抓取点的坐标以及影像小方框的边角要求,在所述测试chart图像中绘制对应的影像小方框,其中,所述视场抓取点为所述影像小方框的中心点。
其中,测试chart中心点计算模块具体包括:
定位十字中心点坐标获取模块111用于获取所述测试chart上四个定位十字的中心点坐标,其中,所述测试chart上的四个定位十字记为:上十字T、下十字B、左十字L以及右十字R;
相交直线计算模块112用于计算所述上十字T和下十字B所在直线TB与所述左十字L和右十字R所在直线LR的交点坐标,即为测试chart的中心点C,其坐标为(Cx,Cy)。
在本发明实施例中,根据测试chart上的四个定位十字的中心坐标,计算测试chart的中心点C的坐标;根据当前视场的四个定位十字的中心坐标以及所述测试chart中心点C的坐标,计算每个视场的四个虚拟十字的中心点坐标;根据每个视场的四个虚拟十字的中心点坐标以及所述测试chart的中心点C的坐标,计算所有视场抓取点的坐标;根据每个视场抓取点的坐标以及影像小方框的边角要求,在所述测试chart图像中绘制对应的影像小方框,该计算方式不会因为测试chart画面的旋转而产生误差,提高了抓取精度,同时,通过摄像模组拍摄测试chart画面时,只需要将测试chart的四个定位十字调整到摄像模组的对应蓝框(图中未标识蓝色,用黑色线条标识)之内即可实现自动对各个视场测试chart内容抓取点的定位抓取,操作方便快捷,提高了测试效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。