我正在开发一个简单的 OCR 应用程序(我知道已经存在的应用程序和技术比我能够开发的要好得多,但这是为了好玩)。我的方法是通过比较图像的某些特征,将扫描的字符与已知字符的训练集进行比较,例如:
- 宽度、高度
- 绘制像素数
- 角数
- 等等
有人能告诉我 3. 和 4. 的算法吗(伪代码很好)?
我正在开发一个简单的 OCR 应用程序(我知道已经存在的应用程序和技术比我能够开发的要好得多,但这是为了好玩)。我的方法是通过比较图像的某些特征,将扫描的字符与已知字符的训练集进行比较,例如:
有人能告诉我 3. 和 4. 的算法吗(伪代码很好)?
私有函数 getCornerType($im, $x, $y) {
$p11 = $this->getBWcolor($im, $x, $y);
$p21 = $this->getBWcolor($im, $x+1, $y);
$p12 = $this->getBWcolor($im, $x, $y+1);
$p22 = $this->getBWcolor($im, $x+1, $y+1);
$sum = $p11 + $p12 + $p21 + $p22;
if ($sum % 2 == 0){
return false;
}
if (($p11==COLOR_BLACK)&&($p21==COLOR_WHITE)&&($p12==COLOR_WHITE)&&($p22==COLOR_WHITE)){
return CORNER_BP_LEFT_TOP;
}
if (($p11==COLOR_WHITE)&&($p21==COLOR_BLACK)&&($p12==COLOR_WHITE)&&($p22==COLOR_WHITE)){
return CORNER_BP_RIGHT_TOP;
}
if (($p11==COLOR_WHITE)&&($p21==COLOR_WHITE)&&($p12==COLOR_BLACK)&&($p22==COLOR_WHITE)){
return CORNER_BP_LEFT_BOTTOM;
}
if (($p11==COLOR_WHITE)&&($p21==COLOR_WHITE)&&($p12==COLOR_WHITE)&&($p22==COLOR_BLACK)){
return CORNER_BP_RIGHT_BOTTOM;
}
if (($p11==COLOR_WHITE)&&($p21==COLOR_BLACK)&&($p12==COLOR_BLACK)&&($p22==COLOR_BLACK)){
return CORNER_WP_LEFT_TOP;
}
if (($p11==COLOR_BLACK)&&($p21==COLOR_WHITE)&&($p12==COLOR_BLACK)&&($p22==COLOR_BLACK)){
return CORNER_WP_RIGHT_TOP;
}
if (($p11==COLOR_BLACK)&&($p21==COLOR_BLACK)&&($p12==COLOR_WHITE)&&($p22==COLOR_BLACK)){
return CORNER_WP_LEFT_BOTTOM;
}
if (($p11==COLOR_BLACK)&&($p21==COLOR_BLACK)&&($p12==COLOR_BLACK)&&($p22==COLOR_WHITE)){
return CORNER_WP_RIGHT_BOTTOM;
}
}