$extrastylesheet
Olena
User documentation 2.1
An Image Processing Platform
Scribo
Modules
Namespaces
Classes
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
highlight_text_area.cc
1
// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
2
//
3
// This file is part of Olena.
4
//
5
// Olena is free software: you can redistribute it and/or modify it under
6
// the terms of the GNU General Public License as published by the Free
7
// Software Foundation, version 2 of the License.
8
//
9
// Olena is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
// General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
16
//
17
// As a special exception, you may use this file as part of a free
18
// software project without restriction. Specifically, if other files
19
// instantiate templates or use macros or inline functions from this
20
// file, or you compile this file and link it with other files to produce
21
// an executable, this file does not by itself cause the resulting
22
// executable to be covered by the GNU General Public License. This
23
// exception does not however invalidate any other reasons why the
24
// executable file might be covered by the GNU General Public License.
25
26
27
# include <iostream>
28
# include <fstream>
29
30
# include <mln/core/image/image2d.hh>
31
# include <mln/util/array.hh>
32
# include <mln/core/alias/box2d.hh>
33
# include <mln/make/box2d.hh>
34
# include <mln/io/ppm/save.hh>
35
# include <mln/io/magick/load.hh>
36
# include <mln/value/rgb8.hh>
37
38
# include <scribo/debug/highlight_text_area.hh>
39
# include <scribo/debug/usage.hh>
40
41
const
char
*args_desc[][2] =
42
{
43
{
"input.*"
,
"An image."
},
44
{
"ocr_text.txt"
,
"OCR result which must contain text boxes coordinates."
},
45
{
"output.ppm"
,
"A color image with highlighted text areas."
},
46
{0, 0}
47
};
48
49
50
int
main(
int
argc,
char
*argv[])
51
{
52
using namespace
mln;
53
54
if
(argc != 4)
55
return
scribo::debug::usage
(argv,
56
"Highlight text areas in an image."
,
57
"input.* ocr_text.txt output.ppm"
,
58
args_desc);
59
60
mln_trace(
"main"
);
61
62
image2d<value::rgb8>
input;
63
io::magick::load
(input, argv[1]);
64
65
66
mln::util::array<box2d>
bbox
;
67
68
std::ifstream
file
(argv[2]);
69
if
(! file)
70
{
71
std::cerr <<
"error: file '"
<< argv[2]
72
<<
"' not found!"
;
73
abort
();
74
}
75
76
77
while
(!
file
.eof())
78
{
79
int
80
pmin_row, pmin_col,
81
pmax_row, pmax_col;
82
83
file
>> pmin_row;
84
file
>> pmin_col;
85
file
>> pmax_row;
86
file
>> pmax_col;
87
88
std::string txt;
89
getline (file, txt);
90
91
bbox
.append(
mln::make::box2d
(pmin_row, pmin_col, pmax_row, pmax_col));
92
}
93
94
io::ppm::save
(
scribo::debug::highlight_text_area
(input,
bbox
), argv[3]);
95
96
}
scribo
src
debug
highlight_text_area.cc
Copyright (C) 2012 EPITA Research and Development Laboratory (LRDE)