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

What is ~ operator in opencv , C++?

本文关键字:运算符 C++ 中的 opencv 什么      更新时间:2023-10-16

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

Mat edge_enhanced_mser      = ~gradient_grown & mser_mask;

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

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

在Java中,可以使用bitwise_not()方法:

逐位_非

public static void bitwise_not(Mat-src,Mat-dst)

反转数组的每一位。

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

bitwise_not(gradient_grown, gradient_grown_complement);