【发布时间】:2016-03-04 00:14:49
【问题描述】:
我有两个相机(A 和 B),我已经拍摄了校准场景的照片,然后校正失真并使用特征映射来获得像素精确配准,结果如下:
如您所见,颜色响应完全不同。我现在想做的是和 A 拍一张新照片,然后回答这个问题:如果我使用相机 B 会是什么样子?
是否有一些现有的技术或算法可以像这样在两个相机的色彩空间/配置文件之间进行转换?
【问题讨论】:
标签: opencv colors computer-vision
我有两个相机(A 和 B),我已经拍摄了校准场景的照片,然后校正失真并使用特征映射来获得像素精确配准,结果如下:
如您所见,颜色响应完全不同。我现在想做的是和 A 拍一张新照片,然后回答这个问题:如果我使用相机 B 会是什么样子?
是否有一些现有的技术或算法可以像这样在两个相机的色彩空间/配置文件之间进行转换?
【问题讨论】:
标签: opencv colors computer-vision
根据您提供的图像,将它们分割成小方块并不难。之后取两个图像中每个正方形的平均值(甚至更好的中值)。现在你有 2*m*n 值,如下所示:MeansReference_(m*n),MeansQuery_(m*n)。使用线性颜色校正矩阵:
你可以构建这个线性系统:
MeansReference[i][j]= C * MeansQuery[i][j]
地点:
MeansReference[i][j] 是 Reference 图像中正方形 [i,j] 的颜色 (R,G,B) 的矢量 (3*1)。
MeansQuery[i][j] 是 Query 图像中正方形 [i,j] 的颜色 (R,G,B) 的矢量 (3*1)。
C 是3*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。
祝你好运!
【讨论】: