将一个摄像机的颜色配置文件映射到另一个

时间:2016-03-04 00:14:50

标签: opencv colors computer-vision

我有两个相机(A& B),我拍摄了校准场景的照片然后校正了失真并使用了特征映射来获得像素精确配准,从而产生以下结果:

Calibration scene

如您所见,颜色反应完全不同。我现在要做的是用A拍一张新照片并回答问题:如果我使用了相机B会是什么样子?

是否有一些现有的技术或算法可以在两个相机的色彩空间/轮廓之间进行转换?

1 个答案:

答案 0 :(得分:1)

从您提供的图像中,将它们分割成小方块并不困难。之后,取两个图像中每个方格的平均值(或甚至更好的中位数)。现在您有2 * m * n的值,如下所示:MeansReference_(m*n)MeansQuery_(m*n)。使用线性颜色校正矩阵:

enter image description here

您可以构建此线性系统:

MeansReference[i][j]= C * MeansQuery[i][j]

其中:

MeansReference[i][j](R,G,B)图片中正方形[i,j]的颜色Reference的向量(3 * 1)。

MeansQuery[i][j](R,G,B)图片中正方形[i,j]的颜色Query的向量(3 * 1)。

C3*3矩阵(a11,a12,... ,a33)

现在,对于每个i,j,你将得到3个线性方程(对于R,G,B)。由于有9个变量(a11...a33),您需要至少9个方程,这意味着至少3个方格(每个方格为您提供3个方程)。但是,构建的方程越多,得到的准确度就越高。

如何求解线性系统的方程数多于变量数?使用Batch-LSE。你可以在 Neuro-Fuzzy-and-Soft-Computing-Jang-Sun-Mizutan 书籍或任何在线资源中找到有关它的详细信息。

找到9个变量后,您就拥有了色彩校正矩阵。只需将它应用于新相机的任何图像上,您将获得一张看起来像旧相机拍摄的图像。如果您想要相反,请改为使用C^-1

祝你好运!