【问题标题】:What is ~ operator in opencv , C++?什么是 opencv 中的 ~ 运算符,C++?
【发布时间】:2015-06-16 07:17:44
【问题描述】:

我在尝试将一些使用 OpenCV 的 C++ 代码转换为 Java 时遇到了以下问题。我想知道下面代码中~ 操作符对 Mat 对象gradient_grown 做了什么,Java 相当于什么?

Mat edge_enhanced_mser      = ~gradient_grown & mser_mask;

【问题讨论】:

  • 看起来像 NOT 运算符
  • 你为什么不用谷歌搜索类似的东西?
  • 在 Java 中,您不会重载运算符。你写了一个方法,然后试着给它一个合理的名字。
  • 未来读者注意:这是询问特定库中的重载运算符,不是内置运算符

标签: java c++ opencv mat


【解决方案1】:

它相当于为Mat 类重载的bitwise NOT 运算符。在这种情况下,它将反转矩阵中的所有位。它列在documentation 的矩阵表达式部分中:

按位逻辑运算:A logicop B、A logicop s、s logicop A、~A,其中 logicop 是以下之一:&、|、^。

在 Java 中,您可以使用 bitwise_not() method:

bitwise_not

public static void bitwise_not(Mat src, Mat dst)

反转数组的每一位。

请注意,您需要一个新的Mat 来存储结果:

bitwise_not(gradient_grown, gradient_grown_complement);

【讨论】:

  • 即使在 OpenCV Mat(不管是什么)上?
  • 除非它被重载为类类型,就像这里一样。
  • 谢谢,我刚刚在stackoverflow.com/questions/27854370/…987654324@ 发现了一个类似的问题
猜你喜欢
  • 2010-12-11
  • 2010-12-19
  • 2014-10-19
相关资源
最近更新 更多