1041 {
1042 FPAnalyzer analyzer(page_tr, port_blocks);
1043 if (analyzer.num_rows() == 0) return;
1044
1045 analyzer.Pass1Analyze();
1046 analyzer.EstimatePitch(true);
1047
1048
1049
1050 analyzer.Pass1Analyze();
1051 analyzer.EstimatePitch(true);
1052
1053
1054 if (!analyzer.maybe_fixed_pitch()) {
1056 tprintf(
"Page doesn't seem to contain fixed pitch rows\n");
1057 }
1058 return;
1059 }
1060
1061 unsigned iteration = 0;
1062 do {
1063 analyzer.MergeFragments();
1064 analyzer.FinalizeLargeChars();
1065 analyzer.EstimatePitch(false);
1066 iteration++;
1067 } while (analyzer.Pass2Analyze() && iteration < analyzer.max_iteration());
1068
1070 tprintf(
"compute_fixed_pitch_cjk finished after %u iteration (limit=%u)\n",
1071 iteration, analyzer.max_iteration());
1072 }
1073
1074 analyzer.OutputEstimations();
1076}
DLLSYM void tprintf(const char *format,...)
bool textord_debug_pitch_test