我的问题是如何像这样的页面http://vision.middlebury.edu/stereo/data/scenes2014/给视差图着色。

预先感谢您的任何建议。

最佳答案

这些视差图是使用深度信息创建的,您可以使用轴方向为深度图着色。

您也可以通过构建JetColor Map创建自己的方法。

 template<typename T, typename U, typename V>
 inline cv::Scalar cvJetColourMat(T v, U vmin, V vmax) {
 cv::Scalar c = cv::Scalar(1.0, 1.0, 1.0);  // white
 T dv;

if (v < vmin)
   v = vmin;
if (v > vmax)
   v = vmax;
dv = vmax - vmin;

if (v < (vmin + 0.25 * dv)) {
   c.val[0] = 0;
   c.val[1] = 4 * (v - vmin) / dv;
} else if (v < (vmin + 0.5 * dv)) {
   c.val[0] = 0;
   c.val[2] = 1 + 4 * (vmin + 0.25 * dv - v) / dv;
} else if (v < (vmin + 0.75 * dv)) {
   c.val[0] = 4 * (v - vmin - 0.5 * dv) / dv;
   c.val[2] = 0;
} else {
   c.val[1] = 1 + 4 * (vmin + 0.75 * dv - v) / dv;
   c.val[2] = 0;
}
return(c);
}

请注意,如果需要,可以更改为其他颜色组件。

关于opencv - OpenCV:色差图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29441555/

10-10 20:13