【发布时间】:2020-01-24 06:19:05
【问题描述】:
cv::Mat3b bgr = cv::imread("red_test.png");
cv::Mat3b hsv;
cvtColor(bgr, hsv, cv::COLOR_BGR2HSV);
cv::Mat1b mask1, mask2;
inRange(hsv, cv::Scalar(0, 70, 50), cv::Scalar(10, 255, 255), mask1);
inRange(hsv, cv::Scalar(170, 70, 50), cv::Scalar(180, 255, 255), mask2);
cv::Mat1b mask = mask1 + mask2;
为了检测图像中的红心,应用了上面的代码,它提供了 2 个蒙版图像,即“mask1”和“mask2”。然后,我通过按像素进行 OR 操作来组合为两个红色范围生成的蒙版。生成以下输出。
我需要知道的是:是否可以使用输出图像来检测其他样本图像中的红色? (忽略心形,它只是我感兴趣的颜色)。
【问题讨论】:
-
掩码只包含一个等效于每个像素的布尔值,因此您无法仅从中检测颜色。
-
还有其他方法可以使用吗?
-
您到底想做什么?提取 hsv 图像的蒙版部分的颜色?请编辑您的答案以澄清。
标签: c++ image opencv image-processing rgb