如何在mat上进行布尔运算,例如mat3 = mat1& MAT2?

时间:2013-07-31 03:30:23

标签: opencv

我想在mat结构上做布尔运算。 比如

“和/或/ xor”两个二进制图像

可以这样做吗?

3 个答案:

答案 0 :(得分:11)

就这么做!

Mat a,b;
Mat c = a & b;

答案 1 :(得分:3)

对于AND和OR操作,这里是语法:

A | B /* OR operator */
A & B /* AND operator */

XOR运算符不存在,但仍然可以这样做:

(A | B) & (A != B) /* Pseudo-XOR operator */

您可能需要查看Compare function以执行您想要的操作

答案 2 :(得分:1)

您必须基于以下功能进行所有逻辑操作。 第一组,由三个,四个参数函数组成:bitwise_and(),bitwise_or(),bitwise_xor()。

例如:

C++: void bitwise_and(InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray())

Python: cv2.bitwise_and(src1, src2[, dst[, mask]]) → dst

还有bitwise_not(),它有三个参数。

C++: void bitwise_not(InputArray src, OutputArray dst, InputArray mask=noArray())

Python: cv2.bitwise_not(src[, dst[, mask]]) → dst

文档:https://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html