我有一个24块色卡,我试图用所述色卡估算捕获图像的色彩校正矩阵。我使用$ git pull origin master
From github.com:hansaurusrex/destroytheworld
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
$ --allow-unrelated-histories
-bash: --allow-unrelated-histories: command not found
方法手动估算了CCM
并且没有产生理想的结果。应用least squares
后,有些图像会出现奇怪的阴影
我仔细检查了我的代码,但无法发现任何故障。我正在寻找任何基于opencv / matlab或任何开源实现,我可以提供捕获的颜色值和实际颜色值,它可以为我计算和应用CCM,以确保它是否是我的实现有问题或最小二乘法不是很有效。
注意:我之前没有对图像应用任何线性化 应用CCM。请建议任何可以快速获得的资源 测试
PS:以下是用于估算和应用色彩校正矩阵(CCM)的MATLAB代码
CCM
这里是我如何将CCM应用于图像
% calc 3x3 correction matrix
ccm = MactAll * MrawAll' * inv(MrawAll * MrawAll') % MactAll is the 3x24 matirx of actual color card values and MrawAll is the 3x24 matrix of captured color card values
以下是我的结果:
更正图像
答案 0 :(得分:1)
您正在使用的色彩校正模型在这里有详细描述:
这也可以在c ++ opencv中完成。你必须确定等式:
[p1' p2' ... pn' ] = M * [ p1 p2 ... pn]
P' = M * P
p1',... pn'是期望值(如果在XYZ颜色空间中更好),p1,... pn是检测到的实数值,M是3x3变换矩阵。
您可以按如下方式解决该系统:
M = P * P'.inv(CV_SVD)
答案 1 :(得分:0)