File: example.cpp

package info (click to toggle)
zinnia 0.06-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 2,368 kB
  • ctags: 2,156
  • sloc: cpp: 13,195; sh: 9,667; perl: 223; python: 200; makefile: 195; ansic: 70; ruby: 47
file content (72 lines) | stat: -rw-r--r-- 1,981 bytes parent folder | download | duplicates (8)
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
#include <iostream>
#include "zinnia.h"

static const char *input =
  "(character (width 1000)(height 1000)"
  "(strokes ((243 273)(393 450))((700 253)(343 486)(280 716)(393 866)(710 880))))";

int main(int argc, char **argv) {
  zinnia::Recognizer *recognizer = zinnia::Recognizer::create();
  if (!recognizer->open("/usr/local/lib/zinnia/model/tomoe/handwriting-ja.model")) {
    std::cerr << recognizer->what() << std::endl;
    return -1;
  }

  zinnia::Character *character = zinnia::Character::create();
  if (!character->parse(input)) {
    std::cerr <<character->what() << std::endl;
    return -1;
  }

  {
    zinnia::Result *result = recognizer->classify(*character, 10);
    if (!result) {
        std::cerr << recognizer->what() << std::endl;
       return -1;
    }
    for (size_t i = 0; i < result->size(); ++i) {
      std::cout << result->value(i) << "\t" << result->score(i) << std::endl;
    }
    delete result;
  }

  character->clear();
  character->set_width(300);
  character->set_height(300);
  character->add(0, 51, 29);
  character->add(0, 117, 41);
  character->add(1, 99, 65);
  character->add(1, 219, 77);
  character->add(2, 27, 131);
  character->add(2, 261, 131);
  character->add(3, 129, 17);
  character->add(3, 57, 203);
  character->add(4, 111, 71);
  character->add(4, 219, 173);
  character->add(5, 81, 161);
  character->add(5, 93, 281);
  character->add(6, 99, 167);
  character->add(6, 207, 167);
  character->add(6, 189, 245);
  character->add(7, 99, 227);
  character->add(7, 189, 227);
  character->add(8, 111, 257);
  character->add(8, 189, 245);

  {
    zinnia::Result *result = recognizer->classify(*character, 10);
    if (!result) {
        std::cerr << recognizer->what() << std::endl;
       return -1;
    }
    for (size_t i = 0; i < result->size(); ++i) {
      std::cout << result->value(i) << "\t" << result->score(i) << std::endl;
    }
    delete result;
  }
   
  delete character;
  delete recognizer; 

  return 0;
}