我的问题是如何像这样的页面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/