【发布时间】:2018-01-20 09:08:16
【问题描述】:
颜色转灰度算法在 cvtColor() 文档中说明。 (搜索 RGB2GRAY)。
Y = 0.299 R + 0.587 G + 0.114 B
我正在使用
cv::Mat i_test_base;
cv::cvtColor(white_balance_image, i_test_base, CV_RGB2GRAY);
cv::imshow("cvtColor", i_test_base);
cv::waitKey(0);
我正在使用 Macbeth 图表,它在检测时可能会导致信号电平过低,例如蓝色补丁。仅使用通道之间的总和或 RGB 值的最大值很可能会更好。
我尝试了类似的东西
cv::transform(white_balance_image, i_test_base, cv::Matx13f(1, 1, 1));
cv::imshow("transform", i_test_base);
cv::waitKey(0);
但这不起作用,我得到一张白色的图像。 我需要缩放或类似的东西吗?
【问题讨论】:
-
你能发布一个示例输入图像吗?当前权重最终会饱和 2/3 的输入颜色。也许使用 HSV 图像的 V 通道可能会产生更好的结果?
-
@DanMašek 我可以发布输入图像,但这只是一个普通的麦克白图表,没什么特别的。只是想知道是否有办法放置不同的权重。
-
如果您转换为浮点数,您可以使用图像而无需担心正常
uint8值的饱和/溢出。
标签: c++ opencv image-processing