reference/ocr-simple/testocr.cc
author viric@llimona
Thu, 18 May 2006 23:12:51 +0200
changeset 0 6b8091ca909a
permissions -rw-r--r--
Init from working directory of svn repository.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     1
#include "system.h"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     2
#include "Page.h"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     3
#include <cstdlib>
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     4
#include <iostream.h>
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     5
#include "tcl_interface.h"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     6
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     7
void draw_bitmap(int x, int y, char * xbmfile);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     8
/* int docommand(char* fmt, ...); */
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     9
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    10
void testocr(int argc, char ** argv)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    11
/*** Just some test stuff for right now ***/
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    12
{
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    13
  Page * hello = new Page;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    14
  hello->readMap("hello.tif");
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    15
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    16
  cout << "Test PixelsInRegion Functions"<< endl; 
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    17
   // This test has ranges appropriate for hello.tif    
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    18
  testPixelsInRegion(hello->bmap(), hello->rmap());  
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    19
  cout << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    20
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    21
  cout << "Now test grayscale" << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    22
  cout << "NumPixels in Region (3,5) .. (52,19) ";
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    23
  cout << hello->bmap()->pixelsInRegion(Point(3,5), Point(52,19)) << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    24
  cout << "  Area: " << (52 -3 +1)*(19-5+1) << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    25
  cout << "  GrayScale: ";
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    26
  cout <<  hello->bmap()->grayScale(Point(3, 5), Point(52,19)) << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    27
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    28
  cout << endl << "Now lets look at the property vector for this region" << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    29
  Component* c = new Component(Point(3, 5),Point(52,19));
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    30
  testProperties(c, hello->bmap());
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    31
  hello->bmap()->writeTclMap("hello",Point(0,0),Point(0,0),0);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    32
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    33
  cout << "Now some testing with pagebw.tif " << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    34
  testLearn();  
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    35
  Page * testPage;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    36
  testPage = new Page;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    37
  cout << "reading map" << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    38
  testPage->readMap("/amd/nfs/cochise/home/ee/cs169/fa95/class/cs169-ab/bigtiff.tif");
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    39
  NoiseTolerance = 10;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    40
  cout << "Finding the lines." << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    41
  testPage->setLines();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    42
  
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    43
  if ((argc > 2) && !(strcmp(argv[2],"-ugly")));
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    44
  else
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    45
      {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    46
	docommand(".t.f.c create bitmap 637 825 -bitmap @/amd/nfs/cochise/home/ee/cs169/fa95/class/cs169-ab/tif/pagebw");
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    47
	docommand("update");
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    48
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    49
	int centerline, width;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    50
	for(int j=0; j < testPage->fnumLines; j++)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    51
	  {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    52
	    centerline = (testPage->flineinfo[j].fendrow + testPage->flineinfo[j + 1].fstartrow) / 2;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    53
	    width = testPage->flineinfo[j + 1].fstartrow - testPage->flineinfo[j].fendrow;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    54
	    docommand(".t.f.c create line %d %d %d %d -width %d -fill blue -tags project_ray -stipple @/usr/sww/share/tclX-7.3a/tkX/3.6a/demos/bitmaps/grey.25", 0, centerline, testPage->bmap()->imageWidth(), centerline, width);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    55
	    update();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    56
	  }
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    57
	for(int i= 0; i < 500; i++)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    58
	  {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    59
	    update();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    60
	  }
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    61
      }
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    62
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    63
  testPage->extractComponents();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    64
  cout << "avgSpacing - " << testPage->avgSpacing() << endl;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    65
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    66
//  testPage->printComponents();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    67
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    68
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    69
    testPage->recognize();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    70
    testPage->extractWords();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    71
    testPage->printWords();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    72
     delete testPage;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    73
     delete hello;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    74
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    75
}
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    76
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    77
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    78
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    79
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    80
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    81
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    82
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    83
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    84
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    85
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    86
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    87
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    88
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    89
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    90
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    91
void testExtractAndMerge()
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    92
{
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    93
  Page * testPage = new Page;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    94
  RLEMap * newMap = new RLEMap;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    95
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    96
  testPage->readMap("train.tif");
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    97
  testPage->rmap()->printPairs(142,145);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    98
  RLEPairs * p = testPage->rmap()->row(144)->extract(504, 520);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    99
  testPage->rmap()->row(143)->merge(p);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   100
  testPage->rmap()->printPairs(142,145);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   101
  testPage->setLines();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   102
  testPage->extractComponents();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   103
  testPage->printComponents();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   104
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   105
}
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   106
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   107
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   108
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   109
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
   110