2017-04-02 77 views
0

給定多通道圖像(例如BGR),爲像素值相等生成(二進制)1C掩碼的最有效方法是什麼?生成單通道掩碼

cv::compare()僅適用於單通道輸入圖像。使用op==產生3C掩模。
我可以然後reduce,但這似乎是一個浪費的第二遍。

有沒有一種方法可以做到這一點?

回答

2

對於多通道矩陣,您需要使用cv::inRange(),它採用單通道,3通道或4通道圖像作爲src,並將顏色的上限和下限進行分段。由於您要測試給定Color的相等性,因此您需要將lower_boundupper_bound作爲相同的標量值。

cv::Scalar color = cv::Scalar(100, 200, 150); 
cv::Mat mask; 
cv::inRange(img, color, color, mask); 
+1

啊!我忘了那個功能!謝謝! –

+0

爲了完整起見,這裏有最新文檔的鏈接:http://docs.opencv.org/3.2.0/d2/de8/group__core__array.html#ga48af0ab51e36436c5d04340e036ce981。 –