发明内容
本发明的目的在于克服上述背景技术中的不足,提供一种自动化效果好、效率高的图像色彩校正方案。
为实现以上目的,一方面,采用一种图像色彩校正方法,包括如下步骤:
读取所拍摄的色卡图片,并识别拍摄的色卡图片上的颜色,生成颜色矩阵A;
获取标准比色卡颜色生成的颜色矩阵B;
根据颜色矩阵A和颜色矩阵B,计算色彩校正矩阵X;
将色彩校正矩阵X输入至相机,并由相机在图像处理过程中校正图像。
进一步地,在拍摄所述色卡图片的过程中,关闭相机本身的gamma校正。
进一步地,所述识别拍摄的色卡图片上的颜色,生成颜色矩阵A,包括:
对所述色卡图片进行边缘检测,得到二值图并对二值图进行轮廓提取,得到由边缘点连成的轮廓线;
对轮廓线进行边缘过滤处理,得到过滤后的轮廓线;
对过滤得到的轮廓线,做每个轮廓线的最小外接矩形;
对最小外接矩形进行聚类处理,得到特定数量的矩形,该特定数量的矩形的旋转角度、大小以及与其余矩形相距最小距离均相似;
对特定数量的矩形进行排序,得到排序好的矩形;
利用排序好的矩形,生成所述颜色矩阵A。
进一步地,在所述对所述色卡图片进行边缘检测,得到二值图并对二值图进行轮廓提取,得到由边缘点连成的轮廓线之前,还包括:
对所述色卡图片进行预处理操作,得到预处理后的色卡图片,所述预处理操作包括压缩图像、灰度化图像和平滑图像。
进一步地,获取标准比色卡颜色生成的颜色矩阵B,可以通过预设的标准颜色矩阵通过光源变换所得,或者是从已经校正过的图片中提取。
进一步地,所述根据颜色矩阵A和颜色矩阵B,计算色彩校正矩阵X,包括:
旋转所述颜色矩阵A的角度以和所述颜色矩阵B匹配;
采用最小二乘法计算出迭代原点;
基于迭代原点,求出每个色块之间的色差的平均值最小时X的值作为色彩校正矩阵X,其中,色差采用Ciede 2000。
进一步地,所述将色彩校正矩阵X输入至相机,并由相机在图像处理过程中校正图像,包括:
将所述色彩校正矩阵X输入至所述相机,并调整所述相机的gamma的值和色彩饱和度直至图片达到最佳效果时,得到最佳的gamma值和色彩饱和度值;
将最佳的gamma值和色彩饱和度值以及所述色彩校正矩阵X输入至所述相机以对相机所处理的图像进行色彩校正。
另一方面,采用一种图像色彩校正装置,包括:PC端和相机,PC端与相机连接,PC端用于计算得到色彩校正参数并输入至相机,相机用于在图像处理过程中利用所述校正参数校正图像并输出校后的图像;
其中,PC端包括输入模块、颜色矩阵A生成模块、颜色矩阵B生成模块、校正参数计算模块和输出模块:
输入模块用于读取相机拍摄的色卡图片;
颜色矩阵A生成模块用于识别拍摄的色卡图片上的颜色,生成颜色矩阵A;
颜色矩阵B生成模块用于获取标准比色卡颜色生成的颜色矩阵B;
校正参数计算模块用于根据颜色矩阵A和颜色矩阵B,计算色彩校正矩阵X;
输出模块用于将色彩校正矩阵X输入至相机,以由相机在图像处理过程中校正图像。
进一步地,所述颜色矩阵A生成模块包括轮廓线计算单元、过滤单元、外接矩形计算单元、聚类单元、排序单元以及矩阵生成单元,其中:
轮廓线计算单元用于对所述色卡图片进行边缘检测,得到二值图并对二值图进行轮廓提取,得到由边缘点连成的轮廓线;
过滤单元用于对轮廓线进行边缘过滤处理,得到过滤后的轮廓线;
外接矩形计算单元用于对过滤得到的轮廓线,做每个轮廓线的最小外接矩形;
聚类单元用于对最小外接矩形进行聚类处理,得到特定数量的矩形,该特定数量的矩形的旋转角度、大小以及与其余矩形相距最小距离均相似;
排序单元用于对特定数量的矩形进行排序,得到排序好的矩形;
矩阵生成单元用于利用排序好的矩形,生成所述颜色矩阵A。
进一步地,所述校正参数计算模块包括匹配单元和迭代单元,其中:
匹配单元用于旋转所述颜色矩阵A的角度以和所述颜色矩阵B匹配;迭代单元用于采用最小二乘法计算出迭代原点,并基于迭代原点,求出每个色块之间的色差的平均值最小时X的值作为色彩校正矩阵X,其中,色差采用Ciede 2000。
进一步地,所述相机包括参数输入模块、参数调整模块以及色彩校正模块,其中:
参数输入模块用于接收所述PC端输入的所述色彩校正矩阵X;
参数调整模块用于调整所述相机的gamma的值和色彩饱和度直至图片达到最佳效果时,得到最佳的gamma值和色彩饱和度值,并存储最佳的gamma值和色彩饱和度值以及所述色彩校正矩阵X;
色彩校正模块用于在对图像进行白平衡校正后,利用所述色彩校正矩阵X对图像校正,再调整饱和度和调整gamma值,得到输出图像。
与现有技术相比,本发明存在以下技术效果:首先,本发明通过在PC端上计算色彩校正参数,并将校正参数存储至相机,由相机在图像处理的同时进行图像校正,与传统的在PC端对每张图像进行单独的颜色校正相比,自动化效果好且校正速度快,效率高。其次,本发明可自动识别拍摄的色卡图片上的颜色,生成颜色矩阵A,与传统的拍摄色卡的矩阵A的生成过程需要手动定位或手动输入相比,自动化效果亦优于现有技术。再次,本发明中使用的色差是ciede 2000,得到的色彩校正参数更加准确。
具体实施方式
为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。
如图1所示,本实施例公开了一种图像色彩校正方法,包括如下步骤S1至S4:
S1、读取所拍摄的色卡图片,并识别拍摄的色卡图片上的颜色,生成颜色矩阵A;
S2、获取标准比色卡颜色生成的颜色矩阵B;
S3、根据颜色矩阵A和颜色矩阵B,计算色彩校正矩阵X;
S4、将色彩校正矩阵X输入至相机,并由相机在图像处理过程中校正图像。
需要说明的是,本实施例中色彩校正参数的计算过程在PC端进行,计算出的校正参数输入至相机,由相机硬件进行图像的色彩校正计算,输出校正后的图像,与传统的在PC端对每一张图片进行单独的颜色校正相比,自动化效果好且效率高。
作为进一步优选的技术方案,在上述步骤S1中,相机拍摄色卡图片的过程中需要关闭相机自带的gamma校正。读取成功后得到的应该是一个宽×长×3的矩阵,每一点代表图片那一像素点的r值,g值,b值。
作为进一步优选的技术方案,如图2所示,在上述步骤S1中,识别拍摄的色卡图片上的颜色,生成颜色矩阵A,包括如下细分步骤S11至S16:
S11、对所述色卡图片进行边缘检测,得到二值图并对二值图进行轮廓提取,得到由边缘点连成的轮廓线;
具体为:对图像进行canny算子之后,得到二值图(边缘点和非边缘点),然后对二值图进行轮廓提取,得到所有的边缘点各自连成的轮廓线。
S12、对轮廓线进行边缘过滤处理,得到过滤后的轮廓线;
具体为:对轮廓线需要进一步提取特征过滤掉不必要的噪声,包括过滤比面积最小值要小的轮廓、过滤掉非矩形的轮廓、过滤掉非正方形的轮廓以及过滤掉所有包含其他剩余轮廓的轮廓。
首先,对轮廓包围的面积最小值进行限定,比最小值小的轮廓都会被排除。其次,将轮廓包围的面积和包围轮廓的最小矩形进行比较,小于一定阈值比例的将会被排除,这步用于过滤掉非矩形的轮廓。再次,比较这些包围轮廓的最小矩形的长宽比,小于或者大于一定阈值的将会排除,这步用于过滤掉非正方形的轮廓。最后,去除掉所有包含其他剩余轮廓的轮廓。
S13、对过滤得到的轮廓线,做每个轮廓线的最小外接矩形;
S14、对最小外接矩形进行聚类处理,得到特定数量的矩形,该特定数量的矩形的旋转角度、大小以及与其余矩形相距最小距离均相似;
具体为:用聚类的方法得到旋转角度、大小、以及与其他矩形相距最小距离都相似的特定数量的矩形。该特定数量可为选定色卡的色块数量,如classic色卡为24个。
需要说明的是,由于上述对轮廓线进行了过滤,所得到的这些外接矩形都近似于正方形,所以旋转角度会规约到45°之内。
S15、对特定数量的矩形进行排序,得到排序好的矩形;
具体为:对于两个不同位置的矩形R1,R2,得到各自的中心点P1,P2,两中心点间的向量为A=P2–P1,令向量A与x轴的夹角与上述旋转角度相比较,若前者大于后者超过阈值,则R1小于R2,反之,则R1大于R2,若相似,说明两个矩形在同一行,则继续比较向量A与y轴的夹角与上述旋转角度的大小。最后得到的结果会是排序好的矩形,左上角的矩形最前面,左下角的矩形次之,右下角的矩形在最后。
需要说明的是,由于拍摄出来的图片不一定是理想状态,一方面可能拍摄时色卡与相机不在一个平面会有倾斜角度,导致每个矩形的旋转角度不尽相同,另一方面可能由于色卡或者相机的原因,本身成像效果有一定问题,所以在边缘检测的时候得到的边缘效果不好,导致有的矩形可能位置形状角度都有偏差。为了增加算法的适用性,本实施例设置一个阈值,如果在A与x轴的夹角中,也就是第一个比较中,两者的差距没有达到这个阈值,则两者认为是同一水平线上的两个矩形。
需要说明的是,在y轴的比较中没有这一项阈值,第一步比较是判断是否是在同一行,如果在同一行,则比较列的大小,可以参考把图像顺时针旋转90°,就和第一步情况相同。
需要说明的是,阈值的取值范围要从色卡中的色块数量来取,比如4×6的24色色卡,那设阈值的最大值为x,考虑不在同一行的两个色块的夹角的最小值应该是tanx=1/6,要考虑可能还会有一定误差的情况,实际取值可以比最大值小一点,比如取0.5x。
由于从步骤S11-S14得到的矩阵是乱序的,在利用矩阵A和矩阵B进行比较计算之前,需要将矩阵A和矩阵B的颜色转换成一一对应的:
比如步骤S2生成的颜色矩阵B是预设的色卡的标准颜色值,是有序的,因此要按照一定顺序把颜色矩阵A整理好,才能和颜色矩阵B进行比较。即使是和从已经校正好的图片中提取得到的颜色矩阵B比较,也要按一定顺序的排列,否则可能因为两个图片色卡位置不一样等原因,导致错误。
S16、利用排序好的矩形,生成所述颜色矩阵A。
具体为:将上述排序好的矩形放到原图像中,取每个矩形包围的面积的颜色的中值(中值相对于平均值对噪声更不敏感),得到n×3的颜色矩阵A,n为色块数量,3为r g b的值。
需要说明的是,本实施例中的颜色矩阵A不需要计算,是自动化生成,无需对图像进行裁剪等预处理,也不需要在拍照的时候调整角度。
作为进一步优选的技术方案,上述步骤S2中的标准比色卡颜色生成的颜色矩阵B可以是自定义的拍摄色卡的标准数据通过光源变换所得(光源可选a b c d50 d55 d65等等),或者是利用步骤S11至S16从已经校正好的图片提取数据得到。
作为进一步优选的技术方案,上述步骤S3:根据颜色矩阵A和颜色矩阵B,计算色彩校正矩阵X,包括如下细分步骤S31至S33:
S31、旋转所述颜色矩阵A的角度以和所述颜色矩阵B匹配;
需要说明的是,因为在实际操作过程中,有可能拍到的色卡图片是旋转90°、180°或270°的,所以分别计算这四个方向的矩阵A和矩阵B的色差,色差最小值即是最佳匹配角度。
需要说明的是,这四个方向是0°90°180°270°,是色卡可能的4个大方向,由于色块是正方形,之前的排序已经考虑过-45°到45°之间90°的数值了,故4×90°=360°,就可以判断360°的色卡方向。
如果要对A旋转90°,需要对A进行一次转置,在做相对y轴的镜像变换。如果要旋转180度,做一次相对于x轴的镜像变换和相对于y轴的。如果要对A旋转270°,需要对A进行一次转置,在做相对x轴的镜像变换。
S32、采用最小二乘法计算出迭代原点;
具体为:最小二乘法通过最小化色差标准
可以列出x0=(A
T*A)
-1*A
T*B,因为ciedergb的色差估计和人眼感受有一定偏差,所以还需要进一步求解。
需要说明的是,本实施例计算出迭代原点的目的是加快迭代速度。
S33、基于迭代原点,求出每个色块之间的色差的平均值最小时X的值作为色彩校正矩阵X,其中,色差采用Ciede 2000。
需要说明的是,本实施例中所计算出的色彩校正矩阵准确。
本实施例中色差采用Ciede 2000,Ciede2000是目前来说最先进的色差公式,基本上和人眼的色差均匀比较相近。计算Ciede 2000的过程需要到Lab色彩空间求解,计算rgb到lab的过程需要白点参考值,而不同的光源下白点参考值不同,所以这里先用d65光源下的转换方法将rgb转到xyz空间,再做一次光源变换,之后再转到lab空间。因为rgb空间到Lab空间的过程以及Ciede 2000的计算方式都是非线性的。为了保留白点,即对W=(255,255,255),W×X=W,所以这实际上是一个求有约束条件多元非线性函数的最小值问题。对于这类问题可以用内点法,序列二次规划,active set等方法求解,线性二次规划对于小规模问题收敛较快,需要的内存较小,所以本实施例对于24色卡的问题可以使用序列二次规划解决。
作为进一步优选的技术方案,上述步骤S4:将色彩校正矩阵X输入至相机,并由相机在图像处理过程中校正图像,包括如下细分步骤S41至S42:
S41、将所述色彩校正矩阵X输入至所述相机,并调整所述相机的gamma的值和色彩饱和度直至图片达到最佳效果时,得到最佳的gamma值和色彩饱和度值;
S42、将最佳的gamma值和色彩饱和度值以及所述色彩校正矩阵X输入至所述相机以对相机所处理的图像进行色彩校正。
如图3所示,本实施例公开了一种图像色彩校正装置,包括:PC端和相机,PC端与相机连接,PC端用于计算得到色彩校正参数并输入至相机,相机用于在图像处理过程中利用所述校正参数校正图像并输出校后的图像;
其中,PC端包括输入模块、颜色矩阵A生成模块、颜色矩阵B生成模块、校正参数计算模块和输出模块:
输入模块用于读取相机拍摄的色卡图片;
颜色矩阵A生成模块用于识别拍摄的色卡图片上的颜色,生成颜色矩阵A;
颜色矩阵B生成模块用于获取标准比色卡颜色生成的颜色矩阵B;
校正参数计算模块用于根据颜色矩阵A和颜色矩阵B,计算色彩校正矩阵X;
输出模块用于将色彩校正矩阵X输入至相机,以由相机在图像处理过程中校正图像。
作为进一步优选的技术方案,所述颜色矩阵A生成模块包括轮廓线计算单元、过滤单元、外接矩形计算单元、聚类单元、排序单元以及矩阵生成单元,其中:
轮廓线计算单元用于对所述色卡图片进行边缘检测,得到二值图并对二值图进行轮廓提取,得到由边缘点连成的轮廓线;
过滤单元用于对轮廓线进行边缘过滤处理,得到过滤后的轮廓线;
外接矩形计算单元用于对过滤得到的轮廓线,做每个轮廓线的最小外接矩形;
聚类单元用于对最小外接矩形进行聚类处理,得到特定数量的矩形,该特定数量的矩形的旋转角度、大小以及与其余矩形相距最小距离均相似;
排序单元用于对特定数量的矩形进行排序,得到排序好的矩形;
矩阵生成单元用于利用排序好的矩形,生成所述颜色矩阵A。
作为进一步优选的技术方案,所述校正参数计算模块包括匹配单元和迭代单元,其中:
匹配单元用于旋转所述颜色矩阵A的角度以和所述颜色矩阵B匹配;
迭代单元用于采用最小二乘法计算出迭代原点,并基于迭代原点,求出每个色块之间的色差的平均值最小时X的值作为色彩校正矩阵X,其中,色差采用Ciede 2000。
作为进一步优选的技术方案,所述相机包括参数输入模块、参数调整模块以及色彩校正模块,其中:
参数输入模块用于接收所述PC端输入的所述色彩校正矩阵X;
参数调整模块用于调整所述相机的gamma的值和色彩饱和度直至图片达到最佳效果时,得到最佳的gamma值和色彩饱和度值,并存储最佳的gamma值和色彩饱和度值以及所述色彩校正矩阵X;
色彩校正模块用于在对图像进行白平衡校正后,利用所述色彩校正矩阵X对图像校正,再调整饱和度和调整gamma值,得到输出图像。
需要说明的是,本实施例公开的一种图像色彩校正装置与上述实施例公开的一种图像色彩校正方法具有相应的技术特征和技术效果,该处不再赘述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。