发明名称 一种基于相机照片的LED逐点非均匀分析校正方法
摘要 本发明公开一种基于相机照片的LED逐点非均匀分析校正方法,包括图片像素信息的提取;LED灯泡阵列轮廓的提取;对LED灯泡阵列进行重新排序;计算每个灯泡的亮度、色度、饱和度进而得到校正系数矩阵;根据校正系数矩阵进行脉宽调制五个步骤。本发明不仅能够一次测量多个点,而且能够在现场进行像素级别的分析校正,并且分析校正设备携带方便,使得分析校正变得非常方便和低成本,从而解决LED因为使用时间长而造成的亮度和色度不均匀的问题,延长了LED显示屏的使用寿命。
申请公布号 CN102231251B 申请公布日期 2013.08.21
申请号 CN201110166769.7 申请日期 2011.06.21
申请人 华南理工大学 发明人 齐德昱;高宇翔;黎祖月;冯子健;李克泉
分类号 G09G3/00(2006.01)I;G09G3/32(2006.01)I 主分类号 G09G3/00(2006.01)I
代理机构 广州粤高专利商标代理有限公司 44102 代理人 何淑珍
主权项 一种基于相机照片的LED逐点非均匀分析校正方法,其特征在于包括图片像素信息的提取;LED灯泡阵列轮廓的提取;对LED灯泡阵列进行重新排序;计算每个灯泡的亮度、色度、饱和度进而得到校正系数矩阵;根据校正系数矩阵进行脉宽调制五个步骤;所述图片像素信息的提取具体是:采用单反相机进行LED显示屏成像,然后利用EDSDK程序从原始的RAW格式的相片中提取每个像素的RGB值并保存为BMP格式图片;所述灯泡阵列轮廓的提取具体是:利用OpenCV 里面的cvThreshold()函数对BMP格式图片进行二值化处理,然后用OpenCV里面的cvFindContours()和cvFitEllipse()函数对每个灯泡进行椭圆拟合,得到每个灯泡的圆心和半径,从而得到每个灯泡所包含的像素点;所述对LED灯泡阵列进行重新排序具体是:根据不同的倾斜情况利用不同的扫描排序方法将OpenCV椭圆拟合得到的乱序的一维的灯泡阵列转为二维阵列,并且保证灯泡在二维阵列中的位置与其实际的物理位置相对应;所述的计算每个灯泡的亮度、色度、饱和度进而得到校正系数矩阵具体是:根据所得到每个灯泡的圆心和半径以及所得到的每个像素的RGB值,计算得到每个灯泡所包含的像素的平均RGB值,再计算出每个灯泡的平均亮度、色度以及饱和度值,然后设定亮度、色度以及饱和度的期望值作为目标值,根据目标值计算得到每个灯泡的校正系数矩阵;所述根据校正系数矩阵进行脉宽调制具体是:将校正系数矩阵上传到控制系统中,控制系统保存所有灯泡的校正系数矩阵,然后将待显示的视频信号与校正系数矩阵相乘,从而改变LED灯泡的驱动脉冲宽度,调整LED灯的显示亮度;所述的根据不同的倾斜情况利用不同的扫描排序方法重新排序具体是:顺时针倾斜时,以横坐标(X)值建立一个哈希表,然后从扫描得到的第一个点开始分别向左和向上扫描,得到二维阵列底边和右侧边,扫描底边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x1,另一个是相邻灯泡纵坐标的差的阈值dis_y1,然后以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标(X)比基准点小并且与基准点的横坐标(X)的差值在阈值dis_x1内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_y1内的点就是基准点的左邻居点,左邻居点加入二维阵列底边对应位置,并从哈希表中删除此节点,然后以该左邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足上述条件的点,便得到了二维阵列的底边;扫描右侧边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x2,另一个是相邻灯泡纵坐标的差的阈值dis_y2,以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标(X)与基准点的横坐标(X)的差值的绝对值在阈值dis_x2内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_y2内的点就是基准点的右侧边的上邻居点,上邻居点加入二维阵列右侧边对应位置,并从哈希表中删除此节点,然后以该上邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足条件的点,便得到了二维阵列的右侧边;再分别以二维阵列的右侧边上每一个点为基准点,用上一步中二维阵列底边的获取方法得到二维阵列每一行的灯泡在原一维阵列中的位置;所述的根据不同的倾斜情况利用不同的扫描排序方法重新排序具体是:逆时针倾斜时,首先要确认得到的第一个点是否是左下角的点,纵坐标最大并且纵坐标和它相同的点中它的横坐标最小,因为逆时针倾斜时,如果图片倾斜不是很大,则有可能出现得到的第一个点在二维阵列底边的中间位置,此时,往后的几个点的纵坐标都相同,所以如果第一个点不是左下角的点,则先从得到的第一个点向左查找,找到左下角的点;从左下角的点开始分别向右和向上扫描,得到二维阵列底边和左侧边,扫描底边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x1,另一个是相邻灯泡纵坐标的差的阈值dis_y1,然后以扫描得到的第一个点为基准点,扫描哈希表中除了基准点外所有横坐标(X)比基准点大并且与基准点的横坐标(X)的差值在阈值dis_x1内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_y1内的点就是基准点的右邻居点,右邻居点加入二维阵列底边对应位置,并从哈希表中删除此节点,然后以该右邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足上述条件的点,便得到了二维阵列的底边;扫描左侧边时先设两个阈值,一个是相邻灯泡横坐标的差的阈值dis_x2,另一个是相邻灯泡纵坐标的差的阈值dis_y2,以左下角的点为基准点,扫描哈希表中除了基准点外所有横坐标(X)与基准点的横坐标(X)的差值的绝对值在阈值dis_x2内的各个点,其中纵坐标(Y)为最大值并且与基准点的纵坐标(Y)的差值在阈值dis_y2内的点就是基准点的左侧边的上邻居点,上邻居点加入二维阵列左侧边对应位置,并从哈希表中删除此节点,然后以该上邻居点为新的基准点,按上面的步骤得到下一个基准点,这样循环下去,直到不存在满足条件的点,便得到了二维阵列的左侧边;再分别以二维阵列的左侧边上每一个点为基准点,用上一步中二维阵列底边的获取方法得到二维阵列每一行的灯泡在原一维阵列中的位置。
地址 510640 广东省广州市天河区五山路381号