# Reading a Grid of Matrix Codes

This code snippet shows how to read matrixcodes that are disposed in a 5 by 3 grid with 10% overlap between grid cells.

## C++

```cpp
#include <eVision/EasyMatrixCode/EasyMatrixCode2/EMatrixCodeReader.h>
```

```cpp
using namespace eVision;
namespace EMC2 = eVision::EasyMatrixCode2;

EImageBW8 srcImage;
ERectangleRegion gridRegion;
EMC2::EMatrixCodeReader reader;

// Reading succeeds
EMC2::EMatrixCodeGrid grid = reader.Read(srcImage, gridRegion, 3, 5, 0.1f);

std::vector<EMC2::EMatrixCode> codesMiddleCell = grid.GetResults(1, 2);
```

#### SEE ALSO
[`EMatrixCodeReader::Read`](../../../../../doxygen_cpp/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#a890b23ec2a4a8396cb9c70eac513fc02) [<sub>.NET</sub>](../../../../../doxygen_cs/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#ad08f5fd519e6a442d9432e056833d764) [<sub>Python</sub>](../../../../../doxygen_python/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#abb1ad9145229c3dd52fe1b576099f6c6), [`EMatrixCodeGrid`](../../../../../doxygen_cpp/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeGrid.html) [<sub>.NET</sub>](../../../../../doxygen_cs/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeGrid.html) [<sub>Python</sub>](../../../../../doxygen_python/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeGrid.html)

## C#

```cs
using eVision;
using EMC2 = eVision.EasyMatrixCode2;
```

```cs
EImageBW8 srcImage = new EImageBW8();
ERectangleRegion gridRegion = new ERectangleRegion();
EMC2.EMatrixCodeReader reader = new EMC2.EMatrixCodeReader();

// Reading succeeds
EMC2.EMatrixCodeGrid grid = reader.Read(srcImage, gridRegion, 3, 5, 0.1f);

EMC2.EMatrixCode[] codesMiddleCell = grid.GetResults(1, 2);
```

#### SEE ALSO
[`EMatrixCodeReader.Read`](../../../../../doxygen_cs/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#ad08f5fd519e6a442d9432e056833d764) [<sub>C++</sub>](../../../../../doxygen_cpp/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#a890b23ec2a4a8396cb9c70eac513fc02) [<sub>Python</sub>](../../../../../doxygen_python/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#abb1ad9145229c3dd52fe1b576099f6c6), [`EMatrixCodeGrid`](../../../../../doxygen_cs/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeGrid.html) [<sub>C++</sub>](../../../../../doxygen_cpp/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeGrid.html) [<sub>Python</sub>](../../../../../doxygen_python/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeGrid.html)

## Python

```py
import eVision
from eVision import EasyMatrixCode2 as EMC2
src_image = eVision.EImageBW8()
gridRegion = eVision.ERectangleRegion()
reader = EMC2.EMatrixCodeReader()

# Reading succeeds
grid = reader.Read(src_image, gridRegion, 3, 5, 0.1)

codesMiddleCell = grid.GetResults(1, 2)
```

#### SEE ALSO
[`EMatrixCodeReader.Read`](../../../../../doxygen_python/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#abb1ad9145229c3dd52fe1b576099f6c6) [<sub>C++</sub>](../../../../../doxygen_cpp/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#a890b23ec2a4a8396cb9c70eac513fc02) [<sub>.NET</sub>](../../../../../doxygen_cs/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeReader.html#ad08f5fd519e6a442d9432e056833d764), [`EMatrixCodeGrid`](../../../../../doxygen_python/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeGrid.html) [<sub>C++</sub>](../../../../../doxygen_cpp/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeGrid.html) [<sub>.NET</sub>](../../../../../doxygen_cs/classeVision_1_1EasyMatrixCode2_1_1EMatrixCodeGrid.html)
