📅 2014-Feb-20 ⬩ ✍️ Ashwin Nanjappa ⬩ 🏷️ mat, opencv, operator ⬩ 📚 Archive

**Mat** is a common structure used in **OpenCV** to store two and higher dimensional data. It is a derivation of the internal **Array** structure. A **relational operator** can applied between two Mat objects or a Mat object and a scalar, and the result is a 8-bit single-channel Mat.

Any of these operations is nothing but a call to compare function. This results in a per-element comparison of the Mat. The key information to remember is that for every element whose result is true, the value in the result Mat is set to `0xFF`

, that is `255`

. If result is false, it is set to `0`

. This behavior is so that the resulting Mat can be used as a mask image if needed for other operations.

The operators that are supported are equal, not-equal, greater, greater-or-equal, lesser and lesser-or-equal.

Example usage of such operations:

```
cv::Mat m0, m1;
cv::Mat m2(m0 == 0);
m2 = m0 > m1;
m2 = m1 <= m0;
m2 = m1 != 1;
```