多相机颜色校正算法之一---基于LM算法的颜色变换参数求解

  • 问题背景

在多视角视频系统中,会用多个相机拍摄同一个场景。但是因为不同相机之间的特性参数不一样,会产生色彩一致性(color consistency)和色感一致性(color constancy)的问题。由于色感是人的主观感受,不易进行量化比较。所以这里只解决色彩不一致性的问题。

如下图所示,左右两张图片就出现色彩不一致的问题。

  • 颜色校正模型

    相机有很多固有参数,这些参数会影响到拍摄到的画面呈现出的色彩。其中主要影响的有三个元素。

求解出Gain, offset,gamma三个参数,就可得到校准计算公式。

  • 迭代求解及优化

    采用LM算法即可解出方程参数。

    Step1:用sift特征描述子,计算对应的像素点

Step2:LM算法迭代优化方程求解

LM算法参考:http://www.shenlejun.cn/article/show.asp?id=97

  • 结果

时间: 2024-10-05 10:26:18

多相机颜色校正算法之一---基于LM算法的颜色变换参数求解的相关文章

C++ 基于Dijkstra算法和基于BFS算法的Ford Fulkson算法比较

#include<iostream> #include<cstdlib> #include<cstdio> #include<ctime> #include<cstring> #include<vector> #include<queue> #include<array> #include<windows.h> using namespace std; const int INF = INT_MAX

【每日算法】洗牌算法

洗牌算法 给定一个n个数的序列,设计一个算法将其随机打乱,保证每个数出现在任意一个位置的概率相同(也就是说在n!个的排列中,每一个排列出现的概率相同). 朴素的做法: 假设输入为数组num[length]. 随机选一个数,放到num[0]中,再随机选数,如果该数已经选过,重新选,直到该数未选过时放入num[1]中,以此类推,直到所有的数都选出来,很明显,这种选法一共有n!中可能,每种可能出现的概率都相同. 但是该做法效率不高,因为选过的数再选将耗费大量时间. 改进的洗牌算法: 基于以上算法的缺陷

相机标定:关于用Levenberg-Marquardt算法在相机标定中应用

LM算法在相机标定的应用共有三处. (1)单目标定或双目标定中,在内参固定的情况下,计算最佳外参.OpenCV中对应的函数为findExtrinsicCameraParams2. (2)单目标定中,在内外参都不固定的情况下,计算最佳内外参.OpenCV中对应的函数为calibrateCamera2. (3)双目标定中,在左右相机的内外参及左右相机的位姿都不固定的情况下,计算最佳的左右相机的内外参及最佳的左右相机的位姿矩阵.OpenCV中对应的函数为stereoCalibrate. 本文文阅读前提

转载︱案例 基于贪心算法的特征选择

转载︱案例 基于贪心算法的特征选择 用GA算法设计22个地点之间最短旅程-R语言实现 -------------------------------------------------------- greedy Algorithm Feature Selection 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑, 它所做出的是在某种意义上的局部最优解.贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心 策

Levenberg-Marquardt迭代(LM算法)-改进Newton法

                  1.前言                                    a.对于工程问题,一般描述为:从一些测量值(观测量)x 中估计参数 p?即x = f(p),                                 其中,x为测量值构成的向量,参数p为待求量,为了让模型能适应一般场景,这里p也为向量.                                 这是一个函数求解问题,可以使用Guass-Newton法进行求解,LM算法

2维FFT算法实现——基于GPU的基2快速二维傅里叶变换

上篇讲述了一维FFT的GPU实现(FFT算法实现——基于GPU的基2快速傅里叶变换),后来我又由于需要做了一下二维FFT,大概思路如下. 首先看的肯定是公式: 如上面公式所描述的,2维FFT只需要拆分成行FFT,和列FFT就行了,其中我在下面的实现是假设原点在F(0,0),由于我的代码需要原点在中心,所以在最后我将原点移动到了中心. 下面是原点F(0,0)的2维FFT的伪代码: //C2DFFT //被执行2DFFT的是一个N*N的矩阵,在source_2d中按行顺序储存 //水平方向FFT f

基于Otsu算法的图像自适应阈值分割

在图像处理实践中,将灰度图转化为二值图是非常常见的一种预处理手段.在Matlab中,可以使用函数BW = im2bw(I, level)来将一幅灰度图 I,转化为二值图.其中,参数level是一个介于0~1之间的值,也就是用于分割图像的阈值.默认情况下,它可取值是0.5. 现在问题来了,有没有一种根据图像自身特点来自适应地选择阈值的方法呢?答案是肯定的!我们今天就来介绍其中最为经典的Otsu算法(或称大津算法).该算法由日本科学家大津展之(Nobuyuki Otsu)于1979年提出.这个算法看

【转】基于RSA算法实现软件注册码原理初讨

1 前言 目前,商用软件和共享软件绝大部份都是采用注册码授权的方式来保证软件本身不被盗用,以保证自身的利益.尽管很多常用的许多软件系统的某些版本已经被别人破解,但对于软件特殊行业而言,注册码授权的方式还是一种保护软件系统本身的一种有效的手段. 通常而言,注册码授权方式有以下几种方式: u  安装序列号方式:这是最为常用的方式,Mircosoft提供的产品(例如:Windows系列产品.Office系列产品等等)都是采用这种方式.通过一种复杂的算法生成安装序列号,在安装过程中,安装程序对用户输入的

最小生成树--Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind

最小支撑树树--Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind 最小支撑树树 前几节中介绍的算法都是针对无权图的,本节将介绍带权图的最小支撑树(minimum spanning tree)算法.给定一个无向图G,并且它的每条边均权值,则MST是一个包括G的所有顶点及边的子集的图,这个子集保证图是连通的,并且子集中所有边的权值之和为所有子集中最小的. 本节中介绍三种算法求解图的最小生成树:Prim算法.Kruskal算法和Boruvk