我想实现2.5D逆成分图像对齐。为此,我需要创建一个最陡的下降图像。我按照Code Project的实现进行2D图像对齐。但我正在寻找3D扭曲信息,因此也是3D最陡下降图像。
对于我的项目,我有一个3D模型解释,使用光线投射我正在创建一个rgbd-image。现在我想搜索3D扭曲,它将此模板图像与给定的实时图像对齐以估计摄像机位置。
我目前只有X和Y方向的渐变
cv::Sobel(grayImg_T, Grad_TX, CV_32F, 1, 0, 3);
cv::Sobel(grayImg_T, Grad_TY, CV_32F, 0, 1, 3);
我估计最陡的下降如下:
float* p_sd_pixel = &p_sd[cols*j * 3 + i * 3];
p_sd_pixel[0] = (float) (-cols*Tx + rows*Ty);
p_sd_pixel[1] = (float) Tx;
p_sd_pixel[2] = (float) Ty;
for(int l = 0; l < 3; l++){
for(int m = 0; m < 3; m++){
float* p_h = (float*)(H.data);
p_h[3*l+m] += p_sd_pixel[l]*p_sd_pixel[m];
}
}
两者都来自2D逆成分图像对齐代码,我来自我之前发布的链接的网站。我想我还需要Z方向的渐变。但我不知道如何为2.5D对齐创建最陡的下降图像以及如何确定仿射扭曲。我如何处理数学或找到更好的方法来实现它?