Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 两个稀疏数据集的插值结果(图像匹配)_Python_Image Processing_Graphics - Fatal编程技术网

Python 两个稀疏数据集的插值结果(图像匹配)

Python 两个稀疏数据集的插值结果(图像匹配),python,image-processing,graphics,Python,Image Processing,Graphics,我有两组a的图像,来自两个不同的相机系统,a和B。每个数据集,在给定的曝光,给我24个RGB元组,从彩色图表上的补丁 我想通过对这两个数据集的插值,通过三维变换将摄像机B和摄像机A匹配起来。这基本上就是创建查找表的过程。解析现有图像并将LUT应用于现有图像的方法都有很好的文档记录,但是我找不到关于如何在给定两个不同数据集的情况下分析创建LUT的好资源。我知道答案涉及通过稀疏数据集进行插值,可能涉及类似的内容,但我不确定实际执行情况 例如,以三线性插值为例,它需要8个角点,但在将图像A与图像B匹配

我有两组a的图像,来自两个不同的相机系统,a和B。每个数据集,在给定的曝光,给我24个RGB元组,从彩色图表上的补丁

我想通过对这两个数据集的插值,通过三维变换将摄像机B和摄像机A匹配起来。这基本上就是创建查找表的过程。解析现有图像并将LUT应用于现有图像的方法都有很好的文档记录,但是我找不到关于如何在给定两个不同数据集的情况下分析创建LUT的好资源。我知道答案涉及通过稀疏数据集进行插值,可能涉及类似的内容,但我不确定实际执行情况

例如,以三线性插值为例,它需要8个角点,但在将图像A与图像B匹配的情况下,这8个角点由什么组成?在所有维度中与给定像素最接近的点击数?在无序的数据集中搜索接近的值似乎代价高昂而且不正确


总的来说,我正在寻找一些关于如何将两幅图像与我获取的数据集进行匹配的建议,特别是3d转换。首选工具是Python,但它可以是任何非专有的工具。

首先,您需要建立对应关系,即将两幅图像中相同颜色的补丁关联起来(关于这一点可以说很多,但不在本答案的范围内)。并获得RGB颜色值(最好通过对贴片进行平均以减少随机波动)

现在你有了一组N对RGB三元组,你想用它来拟合一个数学模型

RGB' = f(RGB)
f
是向量参数的向量函数)

首先,您应该尝试仿射模型

RGB' = A RGB + RGB0
其中,
A
是一个3x3矩阵,
RGB0
是一个常数向量。注意,在仿射情况下,方程是独立的,如

R' = Ar RGB + R0
G' = Ag RGB + G0
B' = Ab RGB + B0
其中,
Ar
Ag
Ab
是向量

有12个未知系数,因此需要
N≥4
。如果
N>4
,您可以求助于最小二乘拟合,在线性情况下也很容易


如果仿射模型不足,您可以尝试多项式模型,例如二次模型(需要
N)≥10
)。

谢谢!澄清一下,这项技术是否允许我生成比全局3x3变换矩阵更复杂的东西?一个3x3矩阵对于线性变换来说已经足够了,但是我正在寻找两个图像之间更复杂的拟合,并且想要一个非线性3D变换,比如LUT(通常)提供的。我回答了这个问题,你读过了吗?注意,“一个LUT”意味着只要你不知道该填充什么,就不需要记录。还认为一个完整的RGB LUT有16777216个条目。谢谢你的回复。是的,我读了你的答案,只是想确保我明白。所以在这种情况下,一个3x3矩阵的单一仿射变换将不足以满足我所寻求的分辨率。对于“LUT”的模糊性表示抱歉。在本文中,我指的是电影行业中流行的许多电影模拟/外观LUT,通常分辨率为32x32x32或64x64x64,并且包含非线性变换。@polyrhythm:你怎么知道?因为我知道问题空间(在本例中为电影模拟)并且已经尝试使用内置的匹配工具来生成简单的3x3矩阵,而不提供复杂的结果。