我使用openNI對於一些項目,Kinect感應器的灰度圖像。我想給深度圖給出的用戶像素着色。現在我有從白色到黑色的像素,但我想從紅色到黑色。我嘗試過與alpha混合,但我的結果只是我有從粉紅色到黑色的像素,因爲我添加了(使用addWeight)紅色+白色=粉紅色。色彩搭配OpenCV的
這是我的實際代碼:
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);
其中device.getDepth()返回一個CV ::墊與深度圖和device.getUserMask()返回一個CV ::墊與用戶像素(僅限白色像素)
一些建議嗎?
編輯: 一兩件事: 感謝sammy answer我已經做到了。但實際上我沒有完全從0到255的值,但是來自(例如)123-220。
我要去尋找最小值和最大值通過一個簡單的for循環(有沒有更好的辦法?),以及如何將我的值在最小最大映射到0-255?
你有沒有-unselect- Sammy的答案?這是一個非常好的答案。我不知道你想如何着色你的灰度圖像。 Mul是一個不錯的解決方案。我認爲在你的問題中增加另一部分是非常粗魯的,取消選擇以前正確的答案,並等待更多。更不用說在參考文獻中很容易查看max-min和scaling。 –