本申请涉及图像处理技术领域,具体涉及一种高精度的图像放大率测量方法,尤其适用于光学系统成像中对放大率的测量。
背景技术:
放大率是光学系统成像性能中的一个重要特性;而利用标准分辨率板测量光学系统成像的放大率是一个高效、简便的方法。如图1所示,标准分辨率板具有多组各种尺寸、间距的刻度线,每组刻度线平行。通过光学成像系统形成数字图像,再根据软件算法去分辨这些刻度线条纹的边线,从而实现对光学成像系统放大率的测量。
随着机器视觉的发展,很多相关软件都具有测量放大率的功能,例如nivision、visionpro等,其测量放大率的过程通常是,如图2所示,首先采用边缘提取算法如canny算子提取边缘像素,滤掉一些离散像素,然后利用直线方程拟合出边线,再通过两条边线的方程,得到边线之间的像素距离(如图3所示,像素距离是指以一个像素边长为单位长度,两条平行线之间的距离)。其中,直线方程通用形式是y=k*x+c。对于直线倾角比较大的情况,为防止k无解,会采用x=k*y+c的方程来拟合。又或者,将二者结合起来,用a*x+b*y+c=0来拟合。
然而,在进行放大率测试时,分辨率板的刻度线往往是横平竖直的,边线斜率要么接近0,要么接近无穷大。如果用a*x+b*y+c=0或者其变形方程来拟合,会导致很弱的鲁棒性。比如对于横平的边线,y的变化接近0,在拟合的时候b的取值容差率较大,如果边线有细微倾斜,将很难拟合出正确的直线方程。这对于高精度的光学成像系统放大率测量会产生误差。
技术实现要素:
本申请提供一种高精度的光学成像系统放大率测量方法和相应的装置。
根据第一方面,一种实施例中提供一种图像放大率测量方法,包括:接收输入的图像;获取在所述图像上截取出的两条待检测边线的区域;利用图像处理对所述区域进行处理以获得边线的像素集;初步评估所述边线的斜率,并对所述斜率进行判断,如果所述斜率的绝对值处于预设范围内,则按直线的一般式方程对所述像素集进行拟合并计算两条所述边线之间的像素距离;如果所述斜率的绝对值处于所述预设范围之外,则按直线的极坐标方程对像素集进行拟合并计算两条所述边线之间的像素距离;根据计算出的两条所述边线间的像素距离、实际距离、以及像素边长来计算得出图像放大率。
根据第二方面,一种实施例中提供一种图像放大率测量装置,包括:像素获取模块,用于接收图像输入,获得在所述图像上截取出的两条待检测边线的区域,利用图像处理对所述区域进行处理以获得边线的像素集;拟合测距模块,用于初步评估所述边线的斜率,对所述斜率进行判断,如果所述斜率的绝对值处于预设范围内,则按直线的一般式方程对所述像素集进行拟合并计算两条所述边线之间的像素距离;如果所述斜率的绝对值处于所述预设范围之外,则按直线的极坐标方程对像素集进行拟合并计算两条所述边线之间的像素距离;获取放大率模块,用于根据计算出的两条所述边线间的像素距离、实际距离、以及像素边长来计算得出图像放大率。
根据第三方面,一种实施例中提供一种基因测序光学系统,其包括成像检测模块,所述成像检测模块具有采用本文提供的方法而实现的图像放大率测量功能。
根据第四方面,一种实施例中提供一种计算机可读存储介质,其包括存储的计算机程序,当运行计算机程序时控制设备执行本文提供的方法。
依据上述实施例,由于考虑到边线斜率的范围,并根据斜率的范围进行不同的直线拟合,使得对不同斜率的边线拟合具有较强的鲁棒性,藉此实现高精度的图像放大率测量。
附图说明
图1为标准分辨率板的示意图;
图2为目前常用的放大率测量的算法流程示意图;
图3为像素距离的示意图;
图4为根据本申请实施例一的图像放大率测量方法的流程示意图;
图5为获取待检测边线的区域的示意图;
图6为检测出边线直线的示意图;
图7为根据本申请实施例一的图像放大率测量方法中采用直线极坐标方程式时涉及的参数示意图;
图8为根据本申请实施例一的图像放大率测量装置的结构示意图;
图9为根据本申请实施例二的图像放大率测量方法的步骤s13的过程示意图。
具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
在本申请实施例中,对于输入图像,首先在该图像上截取出的两条待检测边线的区域,然后利用图像处理对区域进行处理,以获得边线的像素坐标集,并去掉过于离散的像素点,接着初步评估边线的斜率,并对斜率进行判断,如果斜率的绝对值处于预设范围内,则按直线的一般式方程对像素集进行拟合,而如果斜率的绝对值处于预设范围之外,则按直线的极坐标方程对像素集进行拟合,之后根据拟合情况计算两条边线之间的像素距离,并根据计算出的两条边线间的像素距离、实际距离、以及像素边长来计算得出图像放大率。
本申请实施例提出的图像放大率测量方法及装置不仅适用于例如华大基因研究院测序仪光学模块的成像检测模块,还适用于例如测量esf(边缘扩散函数)、mtf(调制传递函数)等任何利用边线直线方程的检测场景。
实施例一:
如图4所示,本实施例的图像放大率测量方法包括如下步骤s10~s19。
步骤s10:接收输入的图像,本实施例中输入的是标准分辨率板的图像。所输入的图像显示在显示屏上。
步骤s11:获取在图像上截取出的两条平行的待检测边线的区域。
可通过鼠标等输入设备在输入的图像中截取出待检测边线的区域,例如分别截取需要检测的两条平行边线的区域数据,如图5所示,截取出的区域为图示虚线框选部分。
步骤s13:利用图像处理对截取出的区域进行处理,以获得边线的像素集。在该步骤中,可以采用类似传统方法,即利用canny算子等获取边线像素点,然后去掉离散像素点,从而可以得到边线的像素坐标集。
步骤s15和步骤s17:初步评估边线的斜率k,并对斜率k进行判断,判断斜率k的绝对值是否在预设范围内,若是则执行步骤s171,若否则执行步骤s173,在执行步骤s171或s173之后,可以得到边线区域中检测出的边线直线,每一个区域有且仅有一条直线,如图6所示。
这里,预设范围为使斜率对应的直线不垂直于直角坐标系的横轴或纵轴的范围。显然,预设范围可以是[0.1,0.9]、[1.1,10]等等。本实施例中选择(0.8,1.2],即0.8<|k|≤1.2。
步骤s171:斜率k的绝对值处于预设范围内,按直线的一般式方程对像素集进行拟合,并计算两条边线之间的像素距离d。其中,采用式
步骤s173:斜率k的绝对值处于预设范围之外,按直线的极坐标方程对像素集进行拟合,并计算两条边线之间的像素距离d。其中,采用式
步骤s19:根据计算出的两边线的像素距离、实际距离及像素边长,采用式
基于上述图像放大率测量方法,本实施例还可提供对应的一种图像放大率测量装置,如图8所示,其包括像素获取模块10、拟合测距模块12和获取放大率模块14。其中,用像素获取模块10接收图像输入,获得在图像上截取出的两条待检测边线的区域,利用图像处理对区域进行处理以获得边线的像素集;拟合测距模块10用于初步评估边线的斜率,对斜率进行判断,如果斜率的绝对值处于预设范围内,则按直线的一般式方程对像素集进行拟合并计算两条边线之间的像素距离;如果斜率的绝对值处于预设范围之外,则按直线的极坐标方程对像素集进行拟合并计算两条边线之间的像素距离;获取放大率模块14用于根据计算出的两条边线间的像素距离、实际距离、以及像素边长来计算得出图像放大率。各模块的具体实现可参考前述步骤,在此不做重述。
在本实施例中,由于设定了预设范围,处于预设范围内的边线斜率不会出现不存在或者k=0的情况,这种情况采用直线的一般式方程进行拟合得到的结果会更为准确;而对于预设范围之外的边线斜率考虑到了该边线垂直于直角坐标系的横轴或纵轴的范围,即斜率不存在或斜率等于0的情况,并针对这样的情况采用直线的极坐标方程进行拟合,从而提高了横平竖直有微小扰动情况时边线的拟合精度。藉此,本申请所提出的图像放大率测量方法能够对各个倾斜角度的边线拟合有着强的鲁棒性,从而实现高精度的放大率测量。
实施例二:
本实施例提供的图像放大率测量方法与实施例一大体相同,即同样包括步骤s10~s19,不同之处在于,本实施例对实施例一的步骤s13进行了改进,如图9所示,在利用图像处理对截取出的区域进行处理以获得像素集时,本实施例的方法包括如下步骤s131~s139。
步骤s131:对截取出的区域做直方图灰度拉伸;
步骤s133:采用最大类间方差法(又称大津算法)对灰度拉伸后的区域进行计算处理,得到适于二值化的阈值;
步骤s135:利用得到的阈值对灰度拉伸后的区域进行二值化;
步骤s137:采用边缘检测算法,例如canny算子,对二值化后的图像进行处理,获取图像的边缘像素坐标集;
步骤s139:去掉过于离散的像素点。
本实施例通过提升原始图像区域的灰度级动态范围,以便后续更精确地对图像进行二值化处理,更能准确地获得边线像素信息。
对于本申请,不同的实施例可以通过硬件、软件、固件和/或他们的组合实现,例如可通过门电路搭建成专用集成电路或软件模块实现本文中所描述的功能。本文所使用的软件模块或组件可以包括位于计算机或计算机可读存储介质中的任何一种计算机指令或计算机可执行码,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等,数据处理模块可通过执行程序实现上述功能。
以上应用了具体个例对本申请进行阐述,只是用于帮助理解本申请,并不用以限制本申请。对于本申请所属技术领域的技术人员,依据本申请的思想,还可以做出若干简单推演、变形或替换。