-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain-voronoi-ocropus.cc
executable file
·70 lines (63 loc) · 2.07 KB
/
main-voronoi-ocropus.cc
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
// -*- C++ -*-
// Copyright 2006-2008 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz
// or its licensors, as applicable.
//
// You may not use this file except under the terms of the accompanying license.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you
// may not use this file except in compliance with the License. You may
// obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Project: OCRopus
// File: main-voronoi-ocropus.cc
// Purpose: Wrapper class for voronoi code
// Responsible: Faisal Shafait (faisal.shafait@dfki.de)
// Reviewer:
// Primary Repository:
// Web Sites: www.iupr.org, www.dfki.de
#include "colib/colib.h"
#include "iulib/imgio.h"
#include "iulib/imglib.h"
#include "voronoi-ocropus.h"
using namespace ocropus;
using namespace colib;
using namespace iulib;
static void invertbg(intarray &image){
simple_recolor(image);
for(int i=0; i<image.length1d(); i++)
if(image.at1d(i) == 0x00800000)
image.at1d(i) = 0x00ffffff;
return;
}
namespace ocropus{
param_bool colorful("colorful",0,"Recolor output for visualization");
}
int main(int argc,char **argv) {
try {
if(!(argc==3 || argc==2)) {
fprintf(stderr, "Usage: ... input.png output.png\n");
exit(1);
}
const char *outimage="out.png";
if(argc==3){
outimage=argv[2];
}
bytearray in ;
intarray out;
read_image_gray(in,stdio(argv[1],"r"));
autodel<ISegmentPage> voronoi(make_SegmentPageByVORONOI());
voronoi->segment(out,in);
if(colorful)
invertbg(out);
write_image_packed(outimage,out);
}
catch(const char *oops) {
fprintf(stderr,"oops: %s\n",oops);
}
}