2015-04-04 149 views
2

我的问题是如何颜色差异地图像这样的页面:http://vision.middlebury.edu/stereo/data/scenes2014/OpenCV:颜色视差图

非常感谢您的任何建议。

+0

我能够给你一个提示:在HSV图像中使用差异值作为色调,其中饱和度和值都最大。请回答你自己的问题,如果你可以拿出工作解决方案,它看起来像一个有趣的功能 – Antonio 2015-04-04 21:35:51

+0

http://docs.opencv.org/modules/contrib/doc/facerec/colormaps.html – berak 2015-04-05 09:16:15

回答

1

使用深度信息创建那些视差图,并且可以使用轴方向对深度图着色。

您也可以通过构建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); 
} 

请注意,您可以更改为其他颜色组件,以满足您的需要。