生成单通道掩码

时间:2017-04-02 08:09:49

标签: opencv mask

给定多通道图像(例如BGR),为像素值相等生成(二进制)1C掩码的最有效方法是什么?

cv::compare()仅适用于单通道输入图像。

使用op==会产生3C个掩码 然后我可以reduce但那似乎是一个浪费的第二次通过。

这样做有一种通过方法吗?

1 个答案:

答案 0 :(得分:2)

对于多通道矩阵,您需要使用cv::inRange(),它将单通道,3通道或4通道图像作为src,并将颜色的下限和上限分段。由于您要测试给定Color的相等性,因此您需要将lower_boundupper_bound作为相同的Scalar值传递。

cv::Scalar color = cv::Scalar(100, 200, 150);
cv::Mat mask;
cv::inRange(img, color, color, mask);
相关问题