opencv 中的 ~ 运算符是什么,C++?

What is ~ operator in opencv , C++?

我在尝试将一些使用 OpenCV 的 C++ 代码转换为 Java 时遇到了以下问题。我想知道 ~ 运算符对以下代码中的 Mat 对象 gradient_grown 做了什么,以及 Java 与此等价的是什么?

Mat edge_enhanced_mser      = ~gradient_grown & mser_mask;

相当于bitwise NOT operator overloaded for the Mat class. In this case, it will invert all bits in the matrix. It is listed in the section Matrix Expressions in the documentation:

Bitwise logical operations: A logicop B, A logicop s, s logicop A, ~A, where logicop is one of : &, |, ^.

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

bitwise_not

public static void bitwise_not(Mat src, Mat dst)

Inverts every bit of an array.

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

bitwise_not(gradient_grown, gradient_grown_complement);