我正在使用OpenNI和Kinect传感器进行某个项目。我想要给深度图中的用户像素上色。现在我的像素从白色到黑色,但我想要从红色到黑色。我尝试了alpha混合,但结果只是得到了从粉色到黑色的像素,因为我用addWeight函数将红色和白色相加得到了粉色。
这是我的实际代码:
这是我的实际代码:
layers = device.getDepth().clone();
cvtColor(layers, layers, CV_GRAY2BGR);
Mat red = Mat(240,320, CV_8UC3, Scalar(255,0,0));
Mat red_body; // = Mat::zeros(240,320, CV_8UC3);
red.copyTo(red_body, device.getUserMask());
addWeighted(red_body, 0.8, layers, 0.5, 0.0, layers);
设备的getDepth()函数返回深度图cv::Mat,getUserMask()函数返回用户像素cv::Mat(仅为白色像素)
有什么建议吗?
编辑: 还有一件事: 感谢sammy answer的回答,我已经做到了。但实际上,我的值不是从0到255,而是从(例如)123-220。
我将通过简单的for循环找到最小值和最大值(是否有更好的方法?),如何将我的值从min-max映射到0-255?