生成单通道模板
Generating a Single Channel Mask
给定多通道图像(例如 BGR),为像素值相等生成(二进制)1C
掩码的最有效方法是什么?
cv::compare()
仅适用于单通道输入图像。
使用 op==
生成 3C
掩码。
然后我可以 reduce
但这似乎是浪费第二遍。
是否有单一的方法可以做到这一点?
对于多通道矩阵,需要使用cv::inRange()
,将单通道、3通道或4通道图像作为src
,并取待分割颜色的下限和上限.由于要测试给定颜色的相等性,因此需要将 lower_bound
和 upper_bound
作为相同的标量值传递。
cv::Scalar color = cv::Scalar(100, 200, 150);
cv::Mat mask;
cv::inRange(img, color, color, mask);
给定多通道图像(例如 BGR),为像素值相等生成(二进制)1C
掩码的最有效方法是什么?
cv::compare()
仅适用于单通道输入图像。
使用 op==
生成 3C
掩码。
然后我可以 reduce
但这似乎是浪费第二遍。
是否有单一的方法可以做到这一点?
对于多通道矩阵,需要使用cv::inRange()
,将单通道、3通道或4通道图像作为src
,并取待分割颜色的下限和上限.由于要测试给定颜色的相等性,因此需要将 lower_bound
和 upper_bound
作为相同的标量值传递。
cv::Scalar color = cv::Scalar(100, 200, 150);
cv::Mat mask;
cv::inRange(img, color, color, mask);