March 2019
Intermediate to advanced
538 pages
13h 38m
English
Let's change our main method to send the recognized output to a file. We do this by using a standard ofstream:
int main(int argc, char* argv[])
{
//Loads the ticket image and binarize it
Mat ticket = binarize(imread("ticket.png"));
auto regions = findTextAreas(ticket);
std::ofstream file;
file.open("ticket.txt", std::ios::out | std::ios::binary);
//For each region
for (const auto& region : regions) {
//Crop
auto cropped = deskewAndCrop(ticket, region);
auto text = identifyText(cropped, "por");
file.write(text, strlen(text));
file endl;
}
file.close();
}
The following line opens the file in binary mode:
file.open("ticket.txt", std::ios::out | std::ios::binary);
This is important since Tesseract returns text encoded ...