一种基于相机照片的led逐点非均匀分析校正方法

xiaoxiao2020-6-26  18

专利名称:一种基于相机照片的led逐点非均匀分析校正方法
技术领域
本发明涉及LED显示屏校正技术,具体涉及种基于相机照片的LED逐点非均勻分析校正方法。
背景技术
LED发光二极管在生产时亮度的差异以及在使用过程中会有不同程度的亮度衰减,由于其亮度衰减的不一致性,在使用一、两年之后,整个屏幕的亮度一致性会大大降低, 严重影响显示屏的显示效果和实际使用寿命,这个时候就需要对LED屏幕进行二次校正。 在对LED显示屏进行逐点校正的过程中,重要的一点就是显示屏上每一颗灯的发光亮度的采集。基于准确的亮度数据,才可以将整屏的各个点的亮度调到一致。在屏体没有安装之前,可以将单元板放到亮度校正仪上作分析校正,但是在显示屏特别是大型的户外屏安装之后,把每一块单元板拆下来重新分析校正显然不太可能。为此,这里采用可以在安装现场进行逐点校正的相机分析校正方式。这种相机分析校正方式, 采用标准的单反相机采集数据,然后将数据输送电脑,再通过电脑里的程序分析处理数据, 最后把数据传给LED控制板(控制系统),控制板根据数据进行脉宽调制,完成对LED的校正。这种方法以箱体作为单位,逐个箱体逐个箱体进行分析校正。不仅使得屏幕免予拆卸, 同时通过以观测者的角度进行测量的方式,也很好的解决了户外屏的角度问题。与传统的亮度分析仪分析方式相比较,优点是相机分析方式可以以箱体为单位进行快速分析校正, 并且在显示屏因长时间使用而发生衰减后,无需拆装,而且分析校正设备携带方便,使得分析校正变得非常方便和低成本。

发明内容
针对前面技术背景所述的传统的LED校正仪在实际运用中的效率问题,本发明提供一种基于相机照片的LED逐点非均分析校正方法。为了实现本方法目的,采用的技术方案如下
一种基于相机照片的LED逐点非均勻分析校正方法,包括图片像素信息的提取;LED灯泡阵列轮廓的提取;对LED灯泡阵列进行重新排序;计算每个灯泡的亮度、色度、饱和度进而得到校正系数矩阵;根据校正系数矩阵进行脉宽调制五个步骤。这样不仅能够一次测量多个点,而且能够在现场进行像素级别的分析校正,从而解决LED因为使用时间长而造成的亮度和色度不均勻的问题,延长了 LED显示屏的使用寿命。上述的基于相机照片的LED逐点非均勻分析方法中,所述图片像素信息的提取具体是采用单反相机进行LED显示屏成像,然后利用EDSDK程序从原始的RAW格式的相片中提取每个像素的RGB值并保存为BMP格式图片。上述的基于相机照片的LED逐点非均勻分析方法中,所述灯泡阵列轮廓的提取具体是利用OpenCV里面的cvThreshold ()函数对BMP格式图片进行二值化处理,然后用 OpenCV里面的cvFindContours ()和cvFitEllipse ()函数对每个灯泡进行椭圆拟合,得到每个灯泡的圆心和半径,从而得到每个灯泡所包含的像素点。上述的基于相机照片的LED逐点非均勻分析方法中,所述对LED灯泡阵列进行重新排序具体是根据不同的倾斜情况利用不同的扫描排序方法将OpenCV椭圆拟合得到的乱序的一维的灯泡阵列转为二维阵列,并且保证灯泡在二维阵列中的位置与其实际的物理位置相对应。重新排列得到的灯泡轮廓,由于利用OpenCV椭圆拟合得到的灯泡阵列是一维的,并且拍摄可能存在的倾斜,导致拟合所得到的一维阵列顺序与实际的灯泡阵列的排列顺序会不一致,因此将扫描得到乱序的一维阵列转为二维阵列并与实际灯泡的物理位置对应起来是必要的。上述的基于相机照片的LED逐点非均勻分析方法中,所述的计算每个灯泡的亮度、色度、饱和度进而得到校正系数矩阵具体是根据所得到每个灯泡的圆心和半径以及所得到的每个像素的RGB值,计算得到每个灯泡所包含的像素的平均RGB值,再计算出每个灯泡的平均亮度、色度以及饱和度值,然后设定亮度、色度以及饱和度的期望值作为目标值, 根据目标值计算得到每个灯泡的校正系数矩阵。上述的基于相机照片的LED逐点非均勻分析方法中,根据校正系数矩阵进行脉宽调制具体是将校正系数矩阵上传到控制系统中,控制系统保存所有灯泡的校正系数矩阵, 然后将待显示的视频信号与校正系数矩阵相乘,从而改变LED灯泡的驱动脉冲宽度,调整 LED灯的显示亮度。上述的基于相机照片的LED逐点非均勻分析方法中,所述的根据不同的倾斜情况利用不同的扫描排序方法重新排序具体是
顺时针倾斜时,以横坐标(X)值建立一个哈希表,然后从扫描得到的第一个点开始分别向左和向上扫描,得到二维阵列底边和右侧边,扫描底边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_xl,另一个是相邻灯泡纵坐标的差的阈值dis_yl,然后以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标(X)比基准点小并且与基准点的横坐标(X)的差值在阈值dis_xl内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_yl内的点就是基准点的左邻居点,左邻居点加入二维阵列底边对应位置,并从哈希表中删除此节点,然后以该左邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足上述条件的点,便得到了二维阵列的底边;扫描右侧边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x2,另一个是相邻灯泡纵坐标的差的阈值dis_y2,以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标⑴与基准点的横坐标⑴的差值的绝对值在阈值dis_x2内的各个点,其中纵坐标⑴为最大值并且与基准点的纵坐标⑴的差值在阈值dis_y2内的点就是基准点的右侧边的上邻居点,上邻居点加入二维阵列右侧边对应位置,并从哈希表中删除此节点,然后以该上邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足条件的点,便得到了二维阵列的右侧边;
再分别以二维阵列的右侧边上每一个点为基准点,用上一步中二维阵列底边的获取方法得到二维阵列每一行的灯泡在原一维阵列中的位置。上述的基于相机照片的LED逐点非均勻分析方法中,所述的根据不同的倾斜情况利用不同的扫描排序方法重新排序具体是
逆时针倾斜时,首先要确认得到的第一个点是否是左下角的点,纵坐标最大并且纵坐标和它相同的点中它的横坐标最小,因为逆时针倾斜时,如果图片倾斜不是很大,则有可能出现得到的第一个点在二维阵列底边的中间位置,此时,往后的几个点的纵坐标都相同,所以如果第一个点不是左下角的点,则先从得到的第一个点向左查找,找到左下角的点;
从左下角的点开始分别向右和向上扫描,得到二维阵列底边和左侧边,扫描底边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_xl,另一个是相邻灯泡纵坐标的差的阈值dis_yl,然后以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标⑴比基准点大并且与基准点的横坐标⑴的差值在阈值dis_xl内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_yl内的点就是基准点的右邻居点,右邻居点加入二维阵列底边对应位置,并从哈希表中删除此节点,然后以该右邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足上述条件的点,便得到了二维阵列的底边;扫描左侧边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x2,另一个是相邻灯泡纵坐标的差的阈值dis_y2,以左下角的点为基准点, 扫描哈希表中除了基准点外所有横坐标(X)与基准点的横坐标(X)的差值的绝对值在阈值dis_x2内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值 dis_y2内的点就是基准点的左侧边的上邻居点,上邻居点加入二维阵列左侧边对应位置, 并从哈希表中删除此节点,然后以该上邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足条件的点,便得到了二维阵列的左侧边;
再分别以二维阵列的左侧边上每一个点为基准点,用上一步中二维阵列底边的获取方法得到二维阵列每一行的灯泡在原一维阵列中的位置。这里用哈希表查找的方法将一维的阵列转为二维阵列,保证灯泡在二维阵列中的位置与其实际的物理位置相对应。与现有技术相比,本发明的优点在于不仅能够一次测量多个点,而且能够在现场进行像素级别的分析校正,并且分析校正设备携带方便,使得分析校正变得非常方便和低成本,从而解决LED因为使用时间长而造成的亮度和色度不均勻的问题,延长了 LED显示屏的使用寿命。


图1为本方法所应用的系统的结构图; 图2为本方法的流程图3为实施方式中一种LED灯泡正规排列、照片顺时针倾斜的示意图; 图4为实施方式中一种LED灯泡交错排列、照片顺时针倾斜的示意图; 图5为实施方式中一种LED灯泡正规排列、照片逆时针倾斜的示意图; 图6为实施方式中一种LED灯泡交错排列、照片逆时针倾斜的示意图。
具体实施例方式下面将结果结合本方法实施例中的附图,对本方法实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本方法一部分实施例子,而不是全部的实施例子。基于本方法中的实施例子,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本方法保护的范围。
如图1和2所示,本方法的总体结构为首先通过CanOn450D拍照,然后通过EDSDK 程序从原始的RAW格式的相片中提取每个像素RGB值并保存为BMP格式图片。再设定一个阈值,如果整个图片的像素值(RGB)等于255的个数超过阈值,则判定该图片曝光过度,需要重新调整再拍摄。如果未超过阈值,则传到下一步进行处理。处理的过程包括对整个图片进行二值化处理然后进行椭圆拟合,这里二值化用到的是OpenCV里面的cvThresholdO函数,椭圆拟合用到的是OpenCV里面的 cvFindContours ()和cvFitEllipse ()函数,求出每个灯泡的圆心和半径,这里为了计算方便,直接将灯泡拟合为圆,由于拟合得到的椭圆长半轴和短半轴相差最多为1个像素,拟合为以短半轴为半径的圆不会有太大误差。拟合完后的下一步重要工作就是重新排序的问题。因为拟合时是从右下角一行一行的从右到左、从下往上扫描的。拍照过程中,难免会出现相机不是绝对水平的或者其他问题,导致相片中的灯泡有一定程度的倾斜,那么扫描得到的一维灯泡队列就不能按照正规的顺序直接转换为二维阵列。因此,就需要重新调整顺序,使得到的二维灯泡阵列与实际灯泡的物理位置相对应。由于灯泡阵列的排列存在多种情况,这里只讨论常见的两种排列情况(正规排列和交错排列),我们的排序方法将这两种情况合二为一,同时处理,而只区分顺时针倾斜和逆时针倾斜。首先,判断扫描得到的第一个灯泡的纵坐标是否是整个灯泡阵列纵坐标(Y)的最大值并且横坐标(X)是否在整个灯泡阵列横坐标(X)最大值的附近。如果是,那么就判断此灯泡阵列是顺时针倾斜的,否则,就判断此灯泡阵列是逆时针倾斜的。然后,以横坐标(X)值建立一个哈希表,相同的横坐标(X)值在哈希表中的同一行。如果是顺时针倾斜的情况(如图3、4),则从扫描得到的第一个点开始分别向左和向上扫描,得到阵列底边和右侧边。扫描底边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_xl,另一个是相邻灯泡纵坐标的差的阈值dis_yl,然后以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标(X)比基准点小并且与基准点的横坐标(X)的差值在阈值dis_xl内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标 ⑴的差值在阈值dis_yl内的点就是基准点的左邻居点,左邻居点加入二维阵列底边对应位置,并从哈希表中删除此节点,然后以该左邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足上述条件的点,便得到了二维阵列的底边;扫描右侧边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x2,另一个是相邻灯泡纵坐标的差的阈值dis_y2,以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标(X)与基准点的横坐标(X)的差值的绝对值在阈值dis_x2内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_y2内的点就是基准点的右侧边的上邻居点,上邻居点加入二维阵列右侧边对应位置,并从哈希表中删除此节点,然后以该上邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足条件的点,这样就得到了二维阵列的右侧边;
再分别以二维阵列的右侧边上每一个点为基准点,用上一步中二维阵列底边的获取方法得到二维阵列每一行的灯泡在原一维阵列中的位置。
Yout, Cbout, Crout分别为每个灯泡焭度、色度和饱和度的目标值,Yin,Cbin, Crin分别为计算得到的每个灯泡的平均亮度、色度和饱和度,根据等式求出每个灯泡的校正系数矩阵 A,Bij表示校正系数矩阵A中第i行第j列的值,i=U2或3 ; j=l、2或3。最后,将得到的每个灯泡的校正系数矩阵上传到控制系统中控制灯板的硬件部
8如果是逆时针倾斜的情况(如图5、6),则首先要确认得到的第一个点是否是左下角的点(纵坐标最大并且纵坐标和它相同的点中它的横坐标最小),因为逆时针倾斜时,如果图片倾斜不是很大,则有可能出现得到的第一个点在二维阵列底边的中间位置,此时,往后的几个点的纵坐标都相同。所以如果第一个点不是左下角的点,则先从得到的第一个点向左查找,找到左下角的点。从左下角的点开始分别向右和向上扫描,得到阵列底边和左侧边。扫描底边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_xl,另一个是相邻灯泡纵坐标的差的阈值dis_yl,然后以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标⑴比基准点大并且与基准点的横坐标⑴的差值在阈值dis_xl内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_yl内的点就是基准点的右邻居点,右邻居点加入二维阵列底边对应位置,并从哈希表中删除此节点,然后以该右邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足上述条件的点,便得到了二维阵列的底边;扫描左侧边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x2,另一个是相邻灯泡纵坐标的差的阈值dis_y2,以左下角的点为基准点, 扫描哈希表中除了基准点外所有横坐标(X)与基准点的横坐标(X)的差值的绝对值在阈值dis_x2内的各个点,其中纵坐标⑴为最大值并且与基准点的纵坐标⑴的差值在阈值 dis_y2内的点就是基准点的左侧边的上邻居点,上邻居点加入二维阵列左侧边对应位置, 并从哈希表中删除此节点,然后以该上邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足条件的点,这样就得到了二维阵列的左侧边。再分别以二维阵列的左侧边上每一个点为基准点,用上一步中二维阵列底边的获取方法得到二维阵列每一行的灯泡在原一维阵列中的位置。根据上面调整后的结果,就能准确定位到指定位置的灯泡,通过计算得到每个灯泡包含像素点的平均RGB值,再通过下面的公式将RGB值转为亮度、色度以及饱和度值,然后设定亮度、色度以及饱和度的期望值作为目标值,根据目标值计算得到每个灯泡的校正系数矩阵。Yin (亮度)=0. 2990R+0. 5870G+0. 1140B Cbin(色度)=-0. 1687R-0. 3313G+0. 5000B+128 Crin (饱和度)=0. 5000R-0. 4187G-0. 0813B + 128 (Y。ut,Cb。ut, Cr。ut) - (Yin, Cbin, Crin) A 。
权利要求
1.一种基于相机照片的LED逐点非均勻分析校正方法,其特征在于包括图片像素信息的提取;LED灯泡阵列轮廓的提取;对LED灯泡阵列进行重新排序;计算每个灯泡的亮度、 色度、饱和度进而得到校正系数矩阵;根据校正系数矩阵进行脉宽调制五个步骤。
2.根据权利要求1所述的基于相机照片的LED逐点非均勻分析方法,其特征在于所述图片像素信息的提取具体是采用单反相机进行LED显示屏成像,然后利用EDSDK程序从原始的RAW格式的相片中提取每个像素的RGB值并保存为BMP格式图片。
3.根据权利要求2所述的基于相机照片的LED逐点非均勻分析方法,其特征在于所述灯泡阵列轮廓的提取具体是利用OpenCV里面的cvThresholdO函数对BMP格式图片进行二值化处理,然后用OpenCV里面的cvFindContours ()和cvFitEllipse ()函数对每个灯泡进行椭圆拟合,得到每个灯泡的圆心和半径,从而得到每个灯泡所包含的像素点。
4.根据权利要求3所述的基于相机照片的LED逐点非均勻分析方法,其特征在于所述对LED灯泡阵列进行重新排序具体是根据不同的倾斜情况利用不同的扫描排序方法将 OpenCV椭圆拟合得到的乱序的一维的灯泡阵列转为二维阵列,并且保证灯泡在二维阵列中的位置与其实际的物理位置相对应。
5.根据权利要求4所述的基于相机照片的LED逐点非均勻分析方法,其特征在于所述的计算每个灯泡的亮度、色度、饱和度进而得到校正系数矩阵具体是根据所得到每个灯泡的圆心和半径以及所得到的每个像素的RGB值,计算得到每个灯泡所包含的像素的平均 RGB值,再计算出每个灯泡的平均亮度、色度以及饱和度值,然后设定亮度、色度以及饱和度的期望值作为目标值,根据目标值计算得到每个灯泡的校正系数矩阵。
6.根据权利要求5所述的基于相机照片的LED逐点非均勻分析方法,其特征在于根据校正系数矩阵进行脉宽调制具体是将校正系数矩阵上传到控制系统中,控制系统保存所有灯泡的校正系数矩阵,然后将待显示的视频信号与校正系数矩阵相乘,从而改变LED灯泡的驱动脉冲宽度,调整LED灯的显示亮度。
7.根据权利要求4所述的重新排列得到的灯泡轮廓,其特征在于所述的根据不同的倾斜情况利用不同的扫描排序方法重新排序具体是顺时针倾斜时,以横坐标(X)值建立一个哈希表,然后从扫描得到的第一个点开始分别向左和向上扫描,得到二维阵列底边和右侧边,扫描底边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_xl,另一个是相邻灯泡纵坐标的差的阈值dis_yl,然后以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标⑴比基准点小并且与基准点的横坐标(X)的差值在阈值dis_xl内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_yl内的点就是基准点的左邻居点,左邻居点加入二维阵列底边对应位置,并从哈希表中删除此节点,然后以该左邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足上述条件的点,便得到了二维阵列的底边;扫描右侧边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x2,另一个是相邻灯泡纵坐标的差的阈值dis_y2,以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标(X)与基准点的横坐标(X)的差值的绝对值在阈值dis_x2内的各个点,其中纵坐标⑴为最大值并且与基准点的纵坐标⑴的差值在阈值dis_y2内的点就是基准点的右侧边的上邻居点,上邻居点加入二维阵列右侧边对应位置,并从哈希表中删除此节点,然后以该上邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足条件的点,便得到了二维阵列的右侧边;再分别以二维阵列的右侧边上每一个点为基准点,用上一步中二维阵列底边的获取方法得到二维阵列每一行的灯泡在原一维阵列中的位置。
8.根据权利要求4所述的重新排列得到的灯泡轮廓,其特征在于所述的根据不同的倾斜情况利用不同的扫描排序方法重新排序具体是逆时针倾斜时,首先要确认得到的第一个点是否是左下角的点,纵坐标最大并且纵坐标和它相同的点中它的横坐标最小,因为逆时针倾斜时,如果图片倾斜不是很大,则有可能出现得到的第一个点在二维阵列底边的中间位置,此时,往后的几个点的纵坐标都相同,所以如果第一个点不是左下角的点,则先从得到的第一个点向左查找,找到左下角的点;从左下角的点开始分别向右和向上扫描,得到二维阵列底边和左侧边,扫描底边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_xl,另一个是相邻灯泡纵坐标的差的阈值dis_yl,然后以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标⑴比基准点大并且与基准点的横坐标⑴的差值在阈值dis_xl内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_yl内的点就是基准点的右邻居点,右邻居点加入二维阵列底边对应位置,并从哈希表中删除此节点,然后以该右邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足上述条件的点,便得到了二维阵列的底边;扫描左侧边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x2,另一个是相邻灯泡纵坐标的差的阈值dis_y2,以左下角的点为基准点, 扫描哈希表中除了基准点外所有横坐标(X)与基准点的横坐标(X)的差值的绝对值在阈值dis_x2内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值 dis_y2内的点就是基准点的左侧边的上邻居点,上邻居点加入二维阵列左侧边对应位置, 并从哈希表中删除此节点,然后以该上邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足条件的点,便得到了二维阵列的左侧边;再分别以二维阵列的左侧边上每一个点为基准点,用上一步中二维阵列底边的获取方法得到二维阵列每一行的灯泡在原一维阵列中的位置。
全文摘要
本发明公开一种基于相机照片的LED逐点非均匀分析校正方法,包括图片像素信息的提取;LED灯泡阵列轮廓的提取;对LED灯泡阵列进行重新排序;计算每个灯泡的亮度、色度、饱和度进而得到校正系数矩阵;根据校正系数矩阵进行脉宽调制五个步骤。本发明不仅能够一次测量多个点,而且能够在现场进行像素级别的分析校正,并且分析校正设备携带方便,使得分析校正变得非常方便和低成本,从而解决LED因为使用时间长而造成的亮度和色度不均匀的问题,延长了LED显示屏的使用寿命。
文档编号G09G3/00GK102231251SQ201110166769
公开日2011年11月2日 申请日期2011年6月21日 优先权日2011年6月21日
发明者冯子健, 李克泉, 高宇翔, 黎祖月, 齐德昱 申请人:华南理工大学

最新回复(0)