so this conversion doesn't look right to me - in the sense that it is not very *powerful*. Why are we constrained to only converting `CDenseFeatures<float64_t>*` into `cv::Mat`? and why it the returned `cv::Mat` always a `CV_64F?`

I think the template should be supplying the desired return type. I think you should just be passing `CDenseFeatures` without a template type and asking for the type inside this function.

The goal of this factory is to take any `CDenseFeatures` object and product the requested type of cv::Mat. Also for interests sake I think the main use case for pull data back into cv::Mat would be to visualize using highgui