# Tuning the Search Parameters

This code snippet shows how to read a QR code and retrieve the decoded data after setting a number of search parameters.

## C++

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

```cpp
using namespace eVision;

// Image constructor
EImageBW8 srcImage;

// QR code reader constructor
EQRCodeReader reader;

// ...

// Set the search parameters
reader.SetMaximumVersion(7);
reader.SetMinimumIsotropy(0.9f);

// Set the searched models
std::vector<EQRCodeModel> models;
models.push_back(EQRCodeModel_Model2);
reader.SetSearchedModels(models);

// Read
std::vector<EQRCode> qrCodes = reader.Read(srcImage);

// Retrieve the decoded string in best guess mode of the first QR code found
std::string decodedString = qrCodes[0].GetDecodedString(EByteInterpretationMode_Auto);
```

#### 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), [`EQRCode::GetDecodedString`](../../../../doxygen_cpp/classeVision_1_1EQRCode.html#ae23a514a154d06ea9d9d12af88e10c49) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCode.html#a6f7a215ffa51a73b191db6882c081b55) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCode.html#aff5a05f073cfdab7850290355b4bbb0b), [`EQRCodeReader::SetSearchedModels`](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#ae09c2e8d388eb9be5cdde695f74719f2) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#aa75a161ddb9f814d22f7f52cde466b94) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#a4e05fae3820c5cf3a6bee9e8ccfd66a7), [`EQRCodeReader::SetMaximumVersion`](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#a29fac78129a66e3f9d6fd7891bdc8fc7) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#ad5d6036a678390274740533485ca9354) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#a57d9fcbdd1d3e89e11677e925984d43a), [`EQRCodeReader::SetMinimumIsotropy`](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#acbed3210652434926dd2f34eeb468ce2) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#a8b817019b68ccc121a729afeebeea7f6) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#aca3fe6cc905869f42f6eafa79512b089)

## C#

```cs
using eVision;
```

```cs
// Image constructor
EImageBW8 srcImage = new EImageBW8();

// QR code reader constructor
EQRCodeReader reader = new EQRCodeReader();

// ...

// Set the search parameters
reader.MaximumVersion = 7;
reader.MinimumIsotropy = 0.9f;

// Set the searched models
reader.SearchedModels = new EQRCodeModel[] { EQRCodeModel.Model2 };

// Read
EQRCode[] qrCodes = reader.Read(srcImage);

// Retrieve the decoded string in best guess mode of the first QR code found
string decodedString = qrCodes[0].GetDecodedString(EByteInterpretationMode.Auto);
```

#### 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), [`EQRCode.GetDecodedString`](../../../../doxygen_cs/classeVision_1_1EQRCode.html#a6f7a215ffa51a73b191db6882c081b55) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCode.html#ae23a514a154d06ea9d9d12af88e10c49) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCode.html#aff5a05f073cfdab7850290355b4bbb0b), [`EQRCodeReader.SearchedModels`](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#aa75a161ddb9f814d22f7f52cde466b94) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#abff380807b04d4bcd723c9e8e2c61736) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#a4e05fae3820c5cf3a6bee9e8ccfd66a7), [`EQRCodeReader.MaximumVersion`](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#ad5d6036a678390274740533485ca9354) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#a1ebc9a8f12692b1faf0200a298d8102a) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#a57d9fcbdd1d3e89e11677e925984d43a), [`EQRCodeReader.MinimumIsotropy`](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#a8b817019b68ccc121a729afeebeea7f6) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#a34b9b2430e8deeacf3b790bcca3d7ea9) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#aca3fe6cc905869f42f6eafa79512b089)

## Python

```py
import eVision
# Image constructor
src_image = eVision.EImageBW8()

# QR code reader constructor
reader = eVision.EQRCodeReader()

# ...

# Set the search parameters
reader.MaximumVersion = 7
reader.MinimumIsotropy = 0.9

# Set the searched models
models = []
models.append(eVision.EQRCodeModel.Model2)
reader.SearchedModels = models

# Read
qr_codes = reader.Read(src_image)

# Retrieve the decoded string in best guess mode of the first QR code found
decoded_string = qr_codes[0].GetDecodedString(eVision.EByteInterpretationMode.Auto)
```

#### 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), [`EQRCode.GetDecodedString`](../../../../doxygen_python/classeVision_1_1EQRCode.html#aff5a05f073cfdab7850290355b4bbb0b) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCode.html#ae23a514a154d06ea9d9d12af88e10c49) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCode.html#a6f7a215ffa51a73b191db6882c081b55), [`EQRCodeReader.SearchedModels`](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#a4e05fae3820c5cf3a6bee9e8ccfd66a7) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#abff380807b04d4bcd723c9e8e2c61736) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#aa75a161ddb9f814d22f7f52cde466b94), [`EQRCodeReader.MaximumVersion`](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#a57d9fcbdd1d3e89e11677e925984d43a) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#a1ebc9a8f12692b1faf0200a298d8102a) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#ad5d6036a678390274740533485ca9354), [`EQRCodeReader.MinimumIsotropy`](../../../../doxygen_python/classeVision_1_1EQRCodeReader.html#aca3fe6cc905869f42f6eafa79512b089) [<sub>C++</sub>](../../../../doxygen_cpp/classeVision_1_1EQRCodeReader.html#a34b9b2430e8deeacf3b790bcca3d7ea9) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1EQRCodeReader.html#a8b817019b68ccc121a729afeebeea7f6)
