【发布时间】:2016-04-18 21:27:50
【问题描述】:
美好的一天!
我似乎无法为我想要在 OpenCV 中完成的工作找到合适的术语。情况如下:
我有一个灰度图像和颜色 (BGR)。
我想将颜色“应用”到灰度图像,但保留亮度并在之后保存。
我最初的思考过程是:
- 将 BGR 颜色转换为 Luv
- 从灰度图像中替换 L
- 将最终图像转换为 BGR 并保存
这是我到目前为止所做的:
cv::Mat pixelColor(1, 1, CV_8UC3, cv::Scalar(0));
pixelColor.at<cv::Vec3b>(1, 1) = cv::Vec3b(128, 255, 0); // currently hard-coded but it actually comes from another source
cv::cvtColor(pixelColor, pixelColor, CV_BGR2Luv);
pixelColor.at<cv::Vec3b>(1, 1)[0] = image.at<unsigned char>(y, x);
cv::cvtColor(pixelColor, pixelColor, CV_Luv2BGR);
我遍历灰度图像的所有 y 和 x。实际颜色来自其他地方,但保证是 BGR。
我的问题是:(1) 这个过程的正确术语是什么? (2) 我哪里错了?
【问题讨论】:
-
这是如何工作/不工作的?
(2)询问“我哪里出错了”,但是,您没有指定您收到的错误。 -
不是错误,而是没有正确放置整个色谱。我的具体情况是,我正在使用 3 种颜色为灰度图像着色。着色的标准来自我已经计算过的概率度量字段。根据颜色空间,3 种颜色中只有 2 种被正确放置。有时,细节会丢失。我不确定我错过了什么。