reference/ocr-new/RLEPair.h
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
#ifndef _RLEPair_H
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     2
#define _RLEPair_H
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     3
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     4
#include "list.h"
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     5
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
// Indicates a series of black pixels in a row.
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     8
class RLEPair {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
     9
public:
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    10
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    11
  RLEPair()
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    12
    :start(0),end(0) {};
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    13
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    14
  RLEPair(int first, int last, int thisRow)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    15
    :start(first), end(last), row(thisRow) {};
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    16
  RLEPair(int first, int last)
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    17
    :start(first), end(last), row(-1) {};
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    18
  ~RLEPair() {};
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    19
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    20
  short int start;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    21
  short int end;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    22
  short int row;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    23
};
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    24
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    25
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    26
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    27
class RLEPairs :public List {
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    28
 public:
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    29
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    30
  RLEPairs(int row_num);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    31
  ~RLEPairs();
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
  // Create RLEPair Representation of contents read from TIFF file
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    34
  void fill(unsigned char * contents, int contentsLength, int contentsRow);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    35
  int pixelsBetween(int start, int end);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    36
  int numPixels;
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    37
  void shift(int);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    38
  void draw_pairs(char * window, double scaleFactor, 
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    39
		  int y_coord, char* color, double width);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    40
  void print_pairs();
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    41
  
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    42
  RLEPairs * extract(int startcol, int endcol);   
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    43
  // create a copy of this from  startcol to endcol.
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    44
 // and return pointer to RLEPairs
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
  void  merge(RLEPairs * pairs);
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    47
  // Merges  pairs into this.
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
  private:
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    50
    int row;
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
  
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    53
};
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    54
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    55
#endif
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
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
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
6b8091ca909a Init from working directory of svn repository.
viric@llimona
parents:
diff changeset
    64
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
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