1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
/******************************************************************************
OSRA: Optical Structure Recognition Application
Created by Igor Filippov, 2007-2013 (igor.v.filippov@gmail.com)
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
St, Fifth Floor, Boston, MA 02110-1301, USA
*****************************************************************************/
#include <stddef.h> // NULL
#include <stdlib.h> // malloc(), free()
#include <iostream> // std::cout
#include <fstream> // std::ifstream
#include <sstream> // std:ostringstream
#include <osra_lib.h>
using namespace std;
int main(int argc, char **argv)
{
if (argc < 2)
{
cout << "Usage: " << argv[0] << " [image_file_name]" << endl;
return 1;
}
ifstream is(argv[1]);
if (!is.is_open())
{
cout << "Failed to open a file '" << argv[1] << '\'' << endl;
return 2;
}
// Learn the file size:
is.seekg(0, ios::end);
const int buf_size = (int) is.tellg();
is.seekg(0, ios::beg);
// Allocate memory:
char* buf = (char*) malloc(buf_size);
if (buf == NULL)
{
cout << "Failed to allocate " << buf_size << " bytes of memory" << endl;
is.close();
return 3;
}
is.read(buf, buf_size);
// Call OSRA:
const int result = osra_process_image(
buf,
buf_size,
cout,
0,
false,
0,
0,
0,
false,
false,
"sdf",
"",
true,
false,
false,
true,
true,
"",
"",
"",
false,
false
);
// Release the allocated resources:
is.close();
free(buf);
return result;
}
|