I'm new to ceres and trying to solve a sparse problem with every sub problem defined based a subset of the variables. Code structure is as following. sub_cam only saves the pointers to the subset variable. However, I got following messages:
'bool Nonrigid_Control_Sparse_PointToPlaneError::operator ()(const T *const *,T *) const': could not deduce template argument for 'const T *const *' from 'const double *const ' \internal\variadic_evaluate.h 176.
Is there anyway to solve this? Thank you.
vector<double*> sub_cam;
for (int j=0;j<4;j++)
{
for (int k = 0; k < 6; k++)
{
sub_cam.push_back(&cam[neighbor_graph[selected_id[i]][k]]);
}
}
ceres::CostFunction* cost_function = Nonrigid_Control_Sparse_PointToPlaneError::Create(dst[i], src[i], dst_normal[i], neighbor_weight[selected_id[i]]);
problem.AddResidualBlock(cost_function, NULL, sub_cam);
template <typename T>
bool operator()(T const *const * camera, T* residuals) const {
;
}