这个表达式在C ++中意味着什么

时间:2013-04-16 09:18:03

标签: c++ opencv

我在opencv代码中遇到过一次这个表达式:

Mat bimage = image >= sliderPos;

已知sliderPos是整数。

这意味着什么。

提前致谢

附加:当然image的类型是cv::Mat

2 个答案:

答案 0 :(得分:3)

在不知道image类型的情况下很难分辨,但根据OpenCV文档,我认为此行会将image转换为黑白图像,使用sliderPos作为确定哪些像素为黑色的阈值。

来自the OpenCV documentation about matrices

  

比较:一个cmpop B,一个cmpop alpha,alpha cmpop A,其中cmpop是   以下之一:>,> =,==,!=,< =,<。比较结果是8位   单通道掩码,其元素设置为255(如果特定的话   元素或元素对满足条件)或0。

答案 1 :(得分:1)

表达式

Mat bimage = image >= sliderPos;

测试image是大于还是等于sliderPos(通常产生bool)并将测试结果分配给新创建的变量bimage Mat

如果>=的{​​{1}}运算符超载,则可能不会产生(decltype(image), int)。如果是这种情况,请查看bool类型的文档以获取详细信息。在任何情况下,它都可以产生一些东西,可以构造image