ccmain/paircmp.cpp

Go to the documentation of this file.
00001 
00020 #include "mfcpch.h"
00021 #include          "blobcmp.h"
00022 #include          "tfacep.h"
00023 #include          "paircmp.h"
00024 
00025 #define EXTERN
00026 
00030 BOOL8 compare_blob_pairs(             //blob processor
00031                          BLOCK *,
00032                          ROW *row,    //row it came from
00033                          WERD *,
00034                          PBLOB *blob  //blob to compare
00035                         ) {
00036   static ROW *prev_row = NULL;   //other in pair
00037   static PBLOB *prev_blob = NULL;
00038   float rating;                  //from matcher
00039 
00040   if (prev_row == NULL || prev_blob == NULL) {
00041     prev_row = row;
00042     prev_blob = blob;
00043   }
00044   else {
00045     rating = compare_blobs (prev_blob, prev_row, blob, row);
00046     tprintf ("Rating=%g\n", rating);
00047     prev_row = NULL;
00048     prev_blob = NULL;
00049   }
00050   return TRUE;
00051 }
00052 
00053 
00057 float compare_blobs(               //match 2 blobs
00058                     PBLOB *blob1,  //first blob
00059                     ROW *row1,     //row it came from
00060                     PBLOB *blob2,  //other blob
00061                     ROW *row2) {
00062   PBLOB *bn_blob1;               //baseline norm
00063   PBLOB *bn_blob2;
00064   DENORM denorm1, denorm2;
00065   float rating;                  //match result
00066 
00067   bn_blob1 = blob1->baseline_normalise (row1, &denorm1);
00068   bn_blob2 = blob2->baseline_normalise (row2, &denorm2);
00069   rating = compare_bln_blobs (bn_blob1, &denorm1, bn_blob2, &denorm2);
00070   delete bn_blob1;
00071   delete bn_blob2;
00072   return rating;
00073 }
00074 
00075 
00079 float compare_bln_blobs(               //match 2 blobs
00080                         PBLOB *blob1,  //first blob
00081                         DENORM *denorm1,
00082                         PBLOB *blob2,  //other blob
00083                         DENORM *denorm2) {
00084   TBLOB *tblob1;                 //tessblobs
00085   TBLOB *tblob2;
00086   TEXTROW tessrow1, tessrow2;    //tess rows
00087   float rating;                  //match result
00088 
00089   tblob1 = make_tess_blob (blob1, TRUE);
00090   make_tess_row(denorm1, &tessrow1); 
00091   tblob2 = make_tess_blob (blob2, TRUE);
00092   make_tess_row(denorm2, &tessrow2); 
00093   rating = compare_tess_blobs (tblob1, &tessrow1, tblob2, &tessrow2);
00094   free_blob(tblob1); 
00095   free_blob(tblob2); 
00096 
00097   return rating;
00098 }

Generated on Wed Feb 28 19:49:07 2007 for Tesseract by  doxygen 1.5.1