# Reading a Grid of QR Codes

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

## C++

```cpp
#include <eVision/EasyQRCode/EQRCodeReader.h>
```

```cpp
using namespace eVision;
EImageBW8 srcImage;
ERectangleRegion gridRegion;
EQRCodeReader reader;

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

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

#### SEE ALSO
[`EQRCodeReader::Read`](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#aca78237d6203febd6221ed2e05cdc19b) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#af3a09d6c336baba0d2d1f078f37c6877) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#a98fbd0bb085de6d6d609875e6cc82ae4), [`EQRCodeGrid`](../../../../doxygen_cpp/classeVision_1_1EQRCodeGrid.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeGrid.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeGrid.html)

## C#

```cs
using eVision;
```

```cs
EImageBW8 srcImage = new EImageBW8();
ERectangleRegion gridRegion = new ERectangleRegion();
EQRCodeReader reader = new EQRCodeReader();

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

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

#### SEE ALSO
[`EQRCodeReader.Read`](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#af3a09d6c336baba0d2d1f078f37c6877) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#aca78237d6203febd6221ed2e05cdc19b) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#a98fbd0bb085de6d6d609875e6cc82ae4), [`EQRCodeGrid`](../../../../doxygen_cs/classeVision_1_1EQRCodeGrid.html) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeGrid.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeGrid.html)

## Python

```py
import eVision
src_image = eVision.EImageBW8()
grid_region = eVision.ERectangleRegion()
reader = eVision.EQRCodeReader()

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

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

#### SEE ALSO
[`EQRCodeReader.Read`](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#a98fbd0bb085de6d6d609875e6cc82ae4) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#aca78237d6203febd6221ed2e05cdc19b) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#af3a09d6c336baba0d2d1f078f37c6877), [`EQRCodeGrid`](../../../../doxygen_python/classeVision_1_1EQRCodeGrid.html) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeGrid.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeGrid.html)
